{"id":17860135,"url":"https://github.com/dbetchkal/public_dataglean_i","last_synced_at":"2026-05-19T07:03:27.122Z","repository":{"id":160105464,"uuid":"472971388","full_name":"dbetchkal/Public_DataGlean_I","owner":"dbetchkal","description":"A Processing based tool to glean useful numeric results that are 'locked up' in a digital image","archived":false,"fork":false,"pushed_at":"2025-01-08T01:36:30.000Z","size":753,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T09:53:02.942Z","etag":null,"topics":["coordinate-systems","digitization","processing3","python","reverse-engineering","scientific-papers","scientific-visualization"],"latest_commit_sha":null,"homepage":"","language":"Processing","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbetchkal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-22T23:31:40.000Z","updated_at":"2025-01-08T01:38:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"9bca9fca-af6c-43bf-abd1-e7846b3ffbf4","html_url":"https://github.com/dbetchkal/Public_DataGlean_I","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dbetchkal/Public_DataGlean_I","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbetchkal%2FPublic_DataGlean_I","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbetchkal%2FPublic_DataGlean_I/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbetchkal%2FPublic_DataGlean_I/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbetchkal%2FPublic_DataGlean_I/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbetchkal","download_url":"https://codeload.github.com/dbetchkal/Public_DataGlean_I/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbetchkal%2FPublic_DataGlean_I/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280776482,"owners_count":26388950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coordinate-systems","digitization","processing3","python","reverse-engineering","scientific-papers","scientific-visualization"],"created_at":"2024-10-28T07:22:45.722Z","updated_at":"2025-10-24T09:53:03.770Z","avatar_url":"https://github.com/dbetchkal.png","language":"Processing","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Public_DataGlean_I\n## A tool to glean useful numeric results that are 'locked up' in a plot\n\nFrom a static plot:\n - we define the Y, then X range bounds with the mouse, then...\n - we give the bounds numeric values with the keyboard, then...\n - we glean one or multiple (x,y) series with the mouse, \n - writing each series to [a JSON file](https://github.com/dbetchkal/Public_DataGlean_I/blob/main/Public_DataGlean_I/data/dataThief_output_L90%20vs%20S_Series1.json).\n\n## Quick Start\n\nDownload this repository. \u003cbr\u003e\nSave an image file to the `Processing` 'data' folder. \u003cbr\u003e\nChange the `path` variable, and press *Run*. \u003cbr\u003e\nFollow the directions in the console.\n\n## Tutorial\nConsider the image from [*Betchkal et al. 2022*, Figure 10](https://irma.nps.gov/DataStore/DownloadFile/671164), which shows species richness, $S$, versus the tenth-percentile sound level of an environment, $L_{90}$: \u003cbr\u003e\u003cbr\u003e\n\u003cimg src=https://github.com/dbetchkal/Public_DataGlean_I/blob/main/Public_DataGlean_I/data/L90%20vs%20S.png height=400\u003e\u003c/img\u003e\n\nThe image is included with the repository. Say we're replicating this experiment and we'd like to recover the co-ordinates of points from this plot without access to the original data. The process requires mapping the *image co-ordinates* back into the *measurement co-ordinates*. `Public_DataGlean_I` allows us to perform this task. \n\n### Step One: enumerate the bounds on each figure axis\n\nThe first step involves clicking each **linear-scale, orthogonal** axis bound in sequence: {`Y_max`, `Y_min`, `X_min`, `X_max`}, for which `Public_DataGlean_I` will print the pixel coordinates to the console. The user may choose any reference point on the original image as long as the set bounds the data to be gleaned. The green linear guides indicate the user's `mouseX` and `mouseY` positions, shown in the image below before clicking `X_max` ($L_{90}$ = 30.0). After each bound is clicked, the user sequentially enters the corresponding numeric value from the figure for each reference point using the keyboard. Pressing the up-arrow ⬆️ allows a given numeric value of the axis bound to be re-entered. Pressing the down-arrow ⬇️ key advances to the next axis bound. \u003cbr\u003e\u003cbr\u003e\n\u003cimg src=https://github.com/dbetchkal/Public_DataGlean_I/blob/main/static/Public_DataGlean_I%20tutorial%20step%20one.png height=400\u003e\u003c/img\u003e\n\n### Step Two: glean the series of points\n\nThe second step simply involves clicking a series of points to write their estimated figure co-cordinates to a file. The user begins data entry for a series by pressing the 'S' key. As in step one, the green linear guides follow the user's `mouseX` and `mouseY` positions. The image below shows the console output immediately after clicking the red point labeled 'TKAN' co-ordinates of roughly (17.0, 17.3). To begin a new series, press 'S' again. To close the file/program, press 'C'. \u003cbr\u003e\u003cbr\u003e\n\u003cimg src=https://github.com/dbetchkal/Public_DataGlean_I/blob/main/static/Public_DataGlean_I%20tutorial%20step%20two.png height=400\u003e\u003c/img\u003e\n\n## Python parsing support\nBasic `Python` parsing support *.geojson* $\\rightarrow$ `pandas.DataFrame` is provided as `Public_DataGlean_I.read_Dataglean_json()`. Bi-directional transformations from logarithmic to linear axes may be performed using they keyword parameters of the function. For example:\n\u003e`data, bounds = read_Dataglean_json(dg_path, x_to_log=False, y_to_log=False, x_from_log=False, y_from_log=False)` \u003cbr\u003e\n\u003e`plt.plot(data[\"x\"], data[\"y\"]) # convenient plotting` \u003cbr\u003e\n\u003e`bounds # returns [0, 20, 20, 110] corresponding to xmin,ymin,xmax,ymax`\n\n## Public domain\n\nThis project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md):\n\n\u003e This project is in the public domain within the United States,\n\u003e and copyright and related rights in the work worldwide are waived through the\n\u003e [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/).\n\u003e\n\u003e All contributions to this project will be released under the CC0 dedication.\n\u003e By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbetchkal%2Fpublic_dataglean_i","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbetchkal%2Fpublic_dataglean_i","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbetchkal%2Fpublic_dataglean_i/lists"}