https://github.com/dbetchkal/public_dataglean_i

A Processing based tool to glean useful numeric results that are 'locked up' in a digital image

https://github.com/dbetchkal/public_dataglean_i

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

coordinate-systems digitization processing3 python reverse-engineering scientific-papers scientific-visualization
Last synced: 5 months ago · JSON representation

Repository

A Processing based tool to glean useful numeric results that are 'locked up' in a digital image

Basic Info
  • Host: GitHub
  • Owner: dbetchkal
  • License: cc0-1.0
  • Language: Processing
  • Default Branch: main
  • Homepage:
  • Size: 735 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
coordinate-systems digitization processing3 python reverse-engineering scientific-papers scientific-visualization
Created almost 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

PublicDataGleanI

A tool to glean useful numeric results that are 'locked up' in a plot

From a static plot: - we define the Y, then X range bounds with the mouse, then... - we give the bounds numeric values with the keyboard, then... - we glean one or multiple (x,y) series with the mouse, - writing each series to a JSON file.

Quick Start

Download this repository.
Save an image file to the Processing 'data' folder.
Change the path variable, and press Run.
Follow the directions in the console.

Tutorial

Consider the image from Betchkal et al. 2022, Figure 10, which shows species richness, $S$, versus the tenth-percentile sound level of an environment, $L{90}$:

<img src=https://github.com/dbetchkal/Public
DataGleanI/blob/main/PublicDataGlean_I/data/L90%20vs%20S.png height=400>

The 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.

Step One: enumerate the bounds on each figure axis

The 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.

<img src=https://github.com/dbetchkal/Public
DataGleanI/blob/main/static/PublicDataGlean_I%20tutorial%20step%20one.png height=400>

Step Two: glean the series of points

The 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'.

Python parsing support

Basic 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:

data, bounds = read_Dataglean_json(dg_path, x_to_log=False, y_to_log=False, x_from_log=False, y_from_log=False)
plt.plot(data["x"], data["y"]) # convenient plotting
bounds # returns [0, 20, 20, 110] corresponding to xmin,ymin,xmax,ymax

Public domain

This project is in the worldwide public domain. As stated in CONTRIBUTING:

This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.

Owner

  • Name: Davyd Halyn Betchkal
  • Login: dbetchkal
  • Kind: user
  • Location: Denali National Park and Preserve, AK
  • Company: National Park Service

GitHub Events

Total
  • Push event: 2
Last Year
  • Push event: 2

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels