{"id":1152,"date":"2010-01-14T15:58:49","date_gmt":"2010-01-14T21:58:49","guid":{"rendered":"http:\/\/bililite.nfshost.com\/blog\/?p=1152"},"modified":"2012-04-25T16:09:12","modified_gmt":"2012-04-25T22:09:12","slug":"engauge-digitizer-tutorial","status":"publish","type":"post","link":"https:\/\/bililite.com\/blog\/2010\/01\/14\/engauge-digitizer-tutorial\/","title":{"rendered":"Engauge Digitizer Tutorial"},"content":{"rendered":"<h3>A simple walkthrough to use the <a href=\"http:\/\/digitizer.sourceforge.net\/\">Engauge Digitizer<\/a> to pull values off a \"printed\" graph<\/h3>\r\n<p>There's a far more complete manual that comes with the download, but these are the steps I used to generate the data for the\r\n<a href=\"\/webservices\">webservices<\/a> graphs. It assumes you've got a black and white image of the graph, with continuous lines for the\r\ndata and orthogonal gridlines, and linear axes.<\/p><!--more-->\r\n<p>We'll use the bilirubin risk levels from the <a href=\"http:\/\/aappolicy.aappublications.org\/cgi\/content\/full\/pediatrics;114\/1\/297\">AAP bilirubin guidelines<\/a>:<\/p>\r\n<a href=\"\/images\/bili.jpg\"><img decoding=\"async\" style=\"display: block; height: 20em\" src=\"\/images\/bili.jpg\" \/><\/a>\r\n<ol>\r\n<li><h4>Open the digitizer<\/h4>\r\n<p>You can't use <code>Open with...<\/code> from the context menu because the program expects filenames as part of the options;\r\nyou can read the manual to see how to modify the context menu. Click <code>Import<\/code>\r\non the toolbar:  <img decoding=\"async\" src=\"\/images\/digitizer-import.PNG\" alt=\"Import icon\" \/> and select your image file:<\/p>\r\n<a href=\"\/images\/graph1.PNG\"><img decoding=\"async\" style=\"display: block; height: 20em\" src=\"\/images\/graph1.PNG\" alt=\"graph imported\"\/><\/a>\r\n<p>Save your work (it's a <code>.dig<\/code> file) often. You don't need me to remind you.<\/p>\r\n<\/li>\r\n<li><h4>Set the axes<\/h4>\r\n<p>Click <code>Axis Point<\/code> in the toolbar: <img decoding=\"async\" src=\"\/images\/digitizer-axis.PNG\" alt=\"Axis icon\" \/> and click on the origin\r\n(lower left corner) of the graph and enter the x,y values for the origin in the units of the graph (not pixels!). Usually that's (0,0)\r\nbut can be anything. Click on the maximum of the y-axis (upper left corner), then the maximum  of the x-axis (lower right corner).<\/p>\r\n<li><h4>Remove the grid<\/h4>\r\n<p>Select <code>Grid Removal...<\/code> from the <code>Settings<\/code> menu. Select \"Remove thin lines parallel to the axes\" and play with\r\nthe \"Minimum line thickness\" until the gridlines are gone from the preview on the bottom but the real curves are still there.<\/p>\r\n<a href=\"\/images\/removegrid.PNG\"><img decoding=\"async\" style=\"display: block\" src=\"\/images\/removegrid.PNG\" alt=\"remove grid window\" \/><\/a>\r\n<p>Now the grid is gone and digitizing the curves will be easy:<\/p>\r\n<a href=\"\/images\/gridremoved.PNG\"><img decoding=\"async\" style=\"display: block; height: 20em\" src=\"\/images\/gridremoved.PNG\" alt=\"graph without grid\"\/><\/a>\r\n<\/li>\r\n<li><h4>Create curves<\/h4>\r\n<p>Select <code>Curves...<\/code> from the <code>Settings<\/code> menu. Create as many curves as you need (we have three). Give them descriptive\r\nnames if you like:<\/p>\r\n<a href=\"\/images\/curves.PNG\"><img decoding=\"async\" style=\"display: block;\" src=\"\/images\/curves.PNG\" alt=\"curve window\"\/><\/a>\r\n<\/li>\r\n<li><h4>Digitize each curve<\/h4>\r\n<p>Click <code>Segment Fill<\/code> in the toolbar: <img decoding=\"async\" src=\"\/images\/digitizer-segment.PNG\" alt=\"Segment icon\" \/>. For each curve, select it\r\nfrom the curve menu: <img decoding=\"async\" src=\"\/images\/digitizer-curvemenu.PNG\" alt=\"Axis icon\" \/> and click the points on the graph for that curve until\r\nit is covered with points. There's no undo command. If a wrong point is included, use the <code>Select<\/code> tool:\r\n<img decoding=\"async\" src=\"\/images\/digitizer-select.PNG\" alt=\"Select icon\" \/> to select the bad points and use the <code>Delete<\/code> key. To add individual points,\r\nuse the <code>Curve Point<\/code> tool: <img decoding=\"async\" src=\"\/images\/digitizer-point.PNG\" alt=\"Curve Point icon\" \/>. In a few clicks, you have the fully\r\ndigitized graph:<\/p>\r\n<a href=\"\/images\/curvesdigitized.PNG\"><img decoding=\"async\" style=\"display: block;height: 20em;\" src=\"\/images\/curvesdigitized.PNG\" alt=\"curve window\"\/><\/a>\r\n<\/li>\r\n<li><h4>Set up the export<\/h4>\r\n<p>If you exported the data now, you'd have lots of points; probably far more than is justified from the original graph. Decide which x-axis\r\nvalues should be exported (the program will interpolate appropriately if the digitized points don't land exactly). Select\r\n<code>Grid Display...<\/code> from the <code>Settings<\/code> menu:<\/p>\r\n<a href=\"\/images\/gridmesh.PNG\"><img decoding=\"async\" style=\"display: block;\" src=\"\/images\/gridmesh.PNG\" alt=\"grid window\"\/><\/a>\r\n<p>The values to be specified are related by <code>count = (stop - start)\/step<\/code> so you only need to specify three; select the one you\r\n<em>don't<\/em> want to specify from the <code>Disable<\/code> dropdown menu. Make sure that the start and stop values are actually in the curve;\r\nthe program will happily extrapolate off the curve but it's probably not scientifically legitimate. Ignore the y axis grid lines.<\/p>\r\n<p>Select <code>Export Setup...<\/code> from the <code>Settings<\/code> menu. In the <code>Points Selection<\/code> section, select\r\n<code>Intepolate Y's at gridline X's<\/code>.<\/p>\r\n<a href=\"\/images\/exportsettings.PNG\"><img decoding=\"async\" style=\"display: block;\" src=\"\/images\/exportsettings.PNG\" alt=\"grid window\"\/><\/a>\r\n<\/li>\r\n<li><h4>Export<\/h4>\r\n<p>Click the <code>Export<\/code> icon in the toolbar: <img decoding=\"async\" src=\"\/images\/digitizer-export.PNG\" alt=\"Export icon\" \/>. Pick a name and you now have a\r\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Comma-separated_values\">CSV<\/a> file with your data. Simple, no?<\/p>\r\n<\/li>\r\n<\/ol>","protected":false},"excerpt":{"rendered":"A simple walkthrough to use the Engauge Digitizer to pull values off a \"printed\" graph There's a far more complete manual that comes with the download, but these are the steps I used to generate the data for the webservices graphs. It assumes you've got a black and white image of the graph, with continuous [&hellip;]","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"_links":{"self":[{"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/posts\/1152"}],"collection":[{"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/comments?post=1152"}],"version-history":[{"count":7,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/posts\/1152\/revisions"}],"predecessor-version":[{"id":2302,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/posts\/1152\/revisions\/2302"}],"wp:attachment":[{"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/media?parent=1152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/categories?post=1152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bililite.com\/blog\/wp-json\/wp\/v2\/tags?post=1152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}