Extract Data From a Plot

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Extract Data From a Plot

Shaw, Matthew
Hello,
I need help extracting data from a plot.  I found a very similar question
in the ImageJ archives:
https://list.nih.gov/cgi-bin/wa.exe?A2=IMAGEJ;b522272.1502

However, the ImageJ plugin: Figure_Calibration requires the user to pick a
few points from the ROI.  My goal is to have ImageJ return a robust set of
coordinates automatically.
I am specifically interested in getting pump curve data from manufacturer’s
published plots.  The particular solution will allow users to:

   1. Apply scaling to the ROI using Figure_Calibration.
   2. Set the threshold to distinguish a particular pump curve from the
   background.
   3. Use the wand tool to trace a particular curve.
   4. Reduce the pixels that represent a curve to a set of data points
   following the median width of pixel distribution.

As an example see the attached TIFF and Excel files, follow the 8” impeller
curve.  The data below was created using the Figure_Calibration plugin with
10 points selected with Multipoint tool.  The particular pump curve looks
very similar to the Figure_Calibration Tutorial here:
http://lukemiller.org/index.php/2011/09/digitizing-data-
from-old-figures-with-imagej/

Ultimately, the new plugin would allow users to obtain a General Solution
of the plot surface.  The general plugin would allow users to “read” the
domed surface plot from the efficiency contours, and create (or
interpolate) slice segments through the efficiency dome for any possible
pump curve (say 8.125 inches).

Does this plugin already exist for ImageJ?  I have seen references to two
programs that supposedly do similar things:
http://markummitchell.github.io/engauge-digitizer/
https://www.mathworks.com/matlabcentral/fileexchange/7173-grabit

I do not have administrative rights to use Engauge Digitizer, and I do not
have a MATLAB license for GRABIT.

Thank you for any help.
Sincerely,
-Matt Shaw

Mechanical Engineer,
U.S. Bureau of Reclamation

  Area Mean Min Max X Y
1 0 86 86 86 8.511 61.517
2 0 55 55 55 100 60.674
3 0 63 63 63 200 60.112
4 0 72 72 72 327.66 58.989
5 0 52 52 52 438.298 56.461
6 0 80 80 80 529.787 52.528
7 0 71 71 71 591.489 49.157
8 0 92 92 92 674.468 43.539
9 0 82 82 82 742.553 38.483
10 0 77 77 77 834.043 31.18

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

pump+curve.tif (491K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Extract Data From a Plot

Michael Sarahan
If I understand your problem correctly, you want a plot digitizer tool. I
have used datathief in the past:

http://datathief.org

Good luck.
Michael

On Thu, Dec 8, 2016, 19:06 Shaw, Matthew <[hidden email]> wrote:

> Hello,
> I need help extracting data from a plot.  I found a very similar question
> in the ImageJ archives:
> https://list.nih.gov/cgi-bin/wa.exe?A2=IMAGEJ;b522272.1502
>
> However, the ImageJ plugin: Figure_Calibration requires the user to pick a
> few points from the ROI.  My goal is to have ImageJ return a robust set of
> coordinates automatically.
> I am specifically interested in getting pump curve data from manufacturer’s
> published plots.  The particular solution will allow users to:
>
>    1. Apply scaling to the ROI using Figure_Calibration.
>    2. Set the threshold to distinguish a particular pump curve from the
>    background.
>    3. Use the wand tool to trace a particular curve.
>    4. Reduce the pixels that represent a curve to a set of data points
>    following the median width of pixel distribution.
>
> As an example see the attached TIFF and Excel files, follow the 8” impeller
> curve.  The data below was created using the Figure_Calibration plugin with
> 10 points selected with Multipoint tool.  The particular pump curve looks
> very similar to the Figure_Calibration Tutorial here:
> http://lukemiller.org/index.php/2011/09/digitizing-data-
> from-old-figures-with-imagej/
>
> Ultimately, the new plugin would allow users to obtain a General Solution
> of the plot surface.  The general plugin would allow users to “read” the
> domed surface plot from the efficiency contours, and create (or
> interpolate) slice segments through the efficiency dome for any possible
> pump curve (say 8.125 inches).
>
> Does this plugin already exist for ImageJ?  I have seen references to two
> programs that supposedly do similar things:
> http://markummitchell.github.io/engauge-digitizer/
> https://www.mathworks.com/matlabcentral/fileexchange/7173-grabit
>
> I do not have administrative rights to use Engauge Digitizer, and I do not
> have a MATLAB license for GRABIT.
>
> Thank you for any help.
> Sincerely,
> -Matt Shaw
>
> Mechanical Engineer,
> U.S. Bureau of Reclamation
>
>   Area Mean Min Max X Y
> 1 0 86 86 86 8.511 61.517
> 2 0 55 55 55 100 60.674
> 3 0 63 63 63 200 60.112
> 4 0 72 72 72 327.66 58.989
> 5 0 52 52 52 438.298 56.461
> 6 0 80 80 80 529.787 52.528
> 7 0 71 71 71 591.489 49.157
> 8 0 92 92 92 674.468 43.539
> 9 0 82 82 82 742.553 38.483
> 10 0 77 77 77 834.043 31.18
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Extract Data From a Plot

Giorgio De Nunzio
I've used WebPlotDigitizer:
http://arohatgi.info/WebPlotDigitizer/download.html
for similar problems.
As to Matlab Grabit, you can consider using running in Octave instead
(check if Grabit and/or Matlab Central licenses allow running in
Octave). Octave does not necessarily need administrative rights to be run.
As to Engauge Digitizer, you can try installing it into a virtual
machine, in which you can have administrative rights. There exist some
ready Windows virtual machines e.g. here
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
Best regards
Giorgio

Il 09/12/2016 02:27, Michael Sarahan ha scritto:

> If I understand your problem correctly, you want a plot digitizer tool. I
> have used datathief in the past:
>
> http://datathief.org
>
> Good luck.
> Michael
>
> On Thu, Dec 8, 2016, 19:06 Shaw, Matthew <[hidden email]> wrote:
>
>> Hello,
>> I need help extracting data from a plot.  I found a very similar question
>> in the ImageJ archives:
>> https://list.nih.gov/cgi-bin/wa.exe?A2=IMAGEJ;b522272.1502
>>
>> However, the ImageJ plugin: Figure_Calibration requires the user to pick a
>> few points from the ROI.  My goal is to have ImageJ return a robust set of
>> coordinates automatically.
>> I am specifically interested in getting pump curve data from manufacturer’s
>> published plots.  The particular solution will allow users to:
>>
>>     1. Apply scaling to the ROI using Figure_Calibration.
>>     2. Set the threshold to distinguish a particular pump curve from the
>>     background.
>>     3. Use the wand tool to trace a particular curve.
>>     4. Reduce the pixels that represent a curve to a set of data points
>>     following the median width of pixel distribution.
>>
>> As an example see the attached TIFF and Excel files, follow the 8” impeller
>> curve.  The data below was created using the Figure_Calibration plugin with
>> 10 points selected with Multipoint tool.  The particular pump curve looks
>> very similar to the Figure_Calibration Tutorial here:
>> http://lukemiller.org/index.php/2011/09/digitizing-data-
>> from-old-figures-with-imagej/
>>
>> Ultimately, the new plugin would allow users to obtain a General Solution
>> of the plot surface.  The general plugin would allow users to “read” the
>> domed surface plot from the efficiency contours, and create (or
>> interpolate) slice segments through the efficiency dome for any possible
>> pump curve (say 8.125 inches).
>>
>> Does this plugin already exist for ImageJ?  I have seen references to two
>> programs that supposedly do similar things:
>> http://markummitchell.github.io/engauge-digitizer/
>> https://www.mathworks.com/matlabcentral/fileexchange/7173-grabit
>>
>> I do not have administrative rights to use Engauge Digitizer, and I do not
>> have a MATLAB license for GRABIT.
>>
>> Thank you for any help.
>> Sincerely,
>> -Matt Shaw
>>
>> Mechanical Engineer,
>> U.S. Bureau of Reclamation
>>
>>    Area Mean Min Max X Y
>> 1 0 86 86 86 8.511 61.517
>> 2 0 55 55 55 100 60.674
>> 3 0 63 63 63 200 60.112
>> 4 0 72 72 72 327.66 58.989
>> 5 0 52 52 52 438.298 56.461
>> 6 0 80 80 80 529.787 52.528
>> 7 0 71 71 71 591.489 49.157
>> 8 0 92 92 92 674.468 43.539
>> 9 0 82 82 82 742.553 38.483
>> 10 0 77 77 77 834.043 31.18
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>


--
Dr. Giorgio De Nunzio PhD
Dipart. di Matematica e Fisica "Ennio De Giorgi", Univ. del Salento
INFN Sezione di Lecce
DReAM (Laboratorio Diffuso di Ricerca Interdisciplinare Applicata alla Medicina)
ADAM (Advanced Data Analysis in Medicine) srl
Lecce (Italy)
[hidden email]
[hidden email]
tel +39 0832 297084-297051
fax +39 0832 297100
mobile +39 320 3829845


---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Extract Data From a Plot

Frederic V. Hessman
Automating the coordinate system recognition is tough, but once you have one, it’s realtively easy to digitize extended points/lines:
        - threshold the image so that the points you want are present but as much of the rest as possible is gone
        - use a ROI to delete the rest of the unneeded stuff (axes,….)
        - skelotonize if necessary
        - analyze what is left as particles

In the case of the pump curve plot, you’d have a lot of cleaning up to do.  The idea of using a free-hand ROI is great: if the coordinate system is there (e.g. left over from Figure_Calibration), then we just need to be able to read out the ROI points and you’re finished...

Otherwise, Figure_Calibration does need the possibility to handle log plots and it would be handy to determine the coordinate system using 2 points instead of a rectangular ROI.

Rick

> On 9 Dec 2016, at 07:01, Giorgio De Nunzio <[hidden email]> wrote:
>
> I've used WebPlotDigitizer:
> http://arohatgi.info/WebPlotDigitizer/download.html
> for similar problems.
> As to Matlab Grabit, you can consider using running in Octave instead (check if Grabit and/or Matlab Central licenses allow running in Octave). Octave does not necessarily need administrative rights to be run.
> As to Engauge Digitizer, you can try installing it into a virtual machine, in which you can have administrative rights. There exist some ready Windows virtual machines e.g. here
> https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
> https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
> Best regards
> Giorgio
>
> Il 09/12/2016 02:27, Michael Sarahan ha scritto:
>> If I understand your problem correctly, you want a plot digitizer tool. I
>> have used datathief in the past:
>>
>> http://datathief.org
>>
>> Good luck.
>> Michael
>>
>> On Thu, Dec 8, 2016, 19:06 Shaw, Matthew <[hidden email]> wrote:
>>
>>> Hello,
>>> I need help extracting data from a plot.  I found a very similar question
>>> in the ImageJ archives:
>>> https://list.nih.gov/cgi-bin/wa.exe?A2=IMAGEJ;b522272.1502
>>>
>>> However, the ImageJ plugin: Figure_Calibration requires the user to pick a
>>> few points from the ROI.  My goal is to have ImageJ return a robust set of
>>> coordinates automatically.
>>> I am specifically interested in getting pump curve data from manufacturer’s
>>> published plots.  The particular solution will allow users to:
>>>
>>>    1. Apply scaling to the ROI using Figure_Calibration.
>>>    2. Set the threshold to distinguish a particular pump curve from the
>>>    background.
>>>    3. Use the wand tool to trace a particular curve.
>>>    4. Reduce the pixels that represent a curve to a set of data points
>>>    following the median width of pixel distribution.
>>>
>>> As an example see the attached TIFF and Excel files, follow the 8” impeller
>>> curve.  The data below was created using the Figure_Calibration plugin with
>>> 10 points selected with Multipoint tool.  The particular pump curve looks
>>> very similar to the Figure_Calibration Tutorial here:
>>> http://lukemiller.org/index.php/2011/09/digitizing-data-
>>> from-old-figures-with-imagej/
>>>
>>> Ultimately, the new plugin would allow users to obtain a General Solution
>>> of the plot surface.  The general plugin would allow users to “read” the
>>> domed surface plot from the efficiency contours, and create (or
>>> interpolate) slice segments through the efficiency dome for any possible
>>> pump curve (say 8.125 inches).
>>>
>>> Does this plugin already exist for ImageJ?  I have seen references to two
>>> programs that supposedly do similar things:
>>> http://markummitchell.github.io/engauge-digitizer/
>>> https://www.mathworks.com/matlabcentral/fileexchange/7173-grabit
>>>
>>> I do not have administrative rights to use Engauge Digitizer, and I do not
>>> have a MATLAB license for GRABIT.
>>>
>>> Thank you for any help.
>>> Sincerely,
>>> -Matt Shaw
>>>
>>> Mechanical Engineer,
>>> U.S. Bureau of Reclamation
>>>
>>>   Area Mean Min Max X Y
>>> 1 0 86 86 86 8.511 61.517
>>> 2 0 55 55 55 100 60.674
>>> 3 0 63 63 63 200 60.112
>>> 4 0 72 72 72 327.66 58.989
>>> 5 0 52 52 52 438.298 56.461
>>> 6 0 80 80 80 529.787 52.528
>>> 7 0 71 71 71 591.489 49.157
>>> 8 0 92 92 92 674.468 43.539
>>> 9 0 82 82 82 742.553 38.483
>>> 10 0 77 77 77 834.043 31.18
>>>
>>> --
>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>
>
>
> --
> Dr. Giorgio De Nunzio PhD
> Dipart. di Matematica e Fisica "Ennio De Giorgi", Univ. del Salento
> INFN Sezione di Lecce
> DReAM (Laboratorio Diffuso di Ricerca Interdisciplinare Applicata alla Medicina)
> ADAM (Advanced Data Analysis in Medicine) srl
> Lecce (Italy)
> [hidden email]
> [hidden email]
> tel +39 0832 297084-297051
> fax +39 0832 297100
> mobile +39 320 3829845
>
>
> ---
> Questa e-mail è stata controllata per individuare virus con Avast antivirus.
> https://www.avast.com/antivirus
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html