From f3488c02f9b3f77ad7c4b59796e4338de8106a0c Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 21 Mar 2016 22:12:06 -0700 Subject: [PATCH 1/4] Moved info to new project page [ci skip] --- README.md | 60 +++++-------------------------------------------------- 1 file changed, 5 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 5811b8d1..45885759 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,9 @@ +Links: +------ +[Project page](file:///home/mark/engauge-digitizer-gh-pages/engauge-digitizer). + [![Travis build Status](https://travis-ci.org/markummitchell/engauge-digitizer.svg?branch=master)](https://travis-ci.org/markummitchell/engauge-digitizer) -[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/1o7p8iu8qxq0p7ri/branch/master?svg=true)](https://ci.appveyor.com/project/markummitchell/engauge-digitizer/branch/master) -engauge-digitizer -================= +[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/1o7p8iu8qxq0p7ri/branch/master?svg=true)](https://ci.appveyor.com/project/markummitchell/engauge-digitizer/branch/master) [![Join the chat at https://gitter.im/markummitchell/engauge-digitizer](https://badges.gitter.im/markummitchell/engauge-digitizer.svg)](https://gitter.im/markummitchell/engauge-digitizer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -The Engauge Digitizer tool accepts image files (like PNG, JPEG and TIFF) containing graphs, and recovers the data points from those graphs. The resulting data points are usually used as input to other software applications. Conceptually, Engauge Digitizer is the opposite of a graphing tool that converts data points to graphs. - -This tool is widely used. Users range from one-time users digitizing a single image file, to large government and commercial organizations managing databases of thousands of image files. - -Interested in translating Engauge to another language? We welcome translations of file translations/engauge.ts to [other languages](https://github.com/markummitchell/engauge-digitizer/issues/85) using [linguist](http://doc.qt.io/qt-5/linguist-programmers.html). - -Released Versions ------------------ -Engauge Digitizer is distributed with most Linux distributions. [Releases](https://github.com/markummitchell/engauge-digitizer/releases) are also available for -Linux and Windows operating systems as downloads: - -* Version 7.0 (3/5/2016 ) offers an advanced import mode for (1) multiple coordinate systems in the same image and/or (2) axes with only one known coordinate (floating axes). Files can also be imported by copying and pasting. - -* Version 6.2 (11/4/2015) now accepts dragged DIG files, and adds a ZIP file for installing in Windows without administrator -access privileges. - -* Version 6.1 (10/31/2015) can load DIG files from earlier versions of Engauge Digitizer. - -* Version 6.0 (10/23/2015) of Engauge 6 was released. This is a major rewrite of the 10 year old Engauge Digitizer software project that lives on sourceforge.net. The replacement is required since the Qt3 toolkit that Engauge relies on is disappearing. Engauge-Digitizer uses the new Qt5 library which should be available for many years, and also offers many new features. - -Features --------- -Features in released versions of Engauge-Digitizer: - -1. Automated line and point extraction rapidly digitizes data -2. Image processing for separating important details from background information -3. Undo/redo of all operations means recovering from mistakes and experimenting with options is painless -4. MSI installer for Windows operating system -5. Wizard provides an interactive tutorial to explain the basic steps -6. Wizard creates a checklist guide to interactively leads user through steps from file import to file export -7. Cubic spline interpolation between points gives more accurate curves with fewer points -8. Axes Checker briefly highlights the axes when they are defined or modified, to reveal entry mistakes -9. Graph coordinates can be specified as date and time values, or as degrees, minutes and seconds -10. File import and data export by drag-and-drop and copy/paste -11. Test suite for regression testing minimizes code breakage as new features are added -12. Multiple coordinate systems in the same image can be digitized in advanced mode -13. Axes with only one known coordinate (floating axes) can be digitized in advanced mode - -Installation ------------- -Engauge can be installed using packages for all popular distributions of Linux (easiest method), or by downloading -pre-built binaries for Windows and Linux (slightly less easy). The pre-built binaries are available from the engauge-digitizer -project at github.com, in the [Releases page](https://github.com/markummitchell/engauge-digitizer/releases). The final option -for installing is to build the software from the source -code (very difficult). Building the software from the source code is accomplished by following the steps in the BUILD -file that is found in the main directory. The build process can take as little as 15 minutes in Linux or as long as -several hours in Microsoft Windows. - -Contributors ------------- -Thanks to Zbigniew Jędrzejewski-Szmek, Tamás Nagy, Baurzhan Muftakhidinov, Tobias Winchen and other contributors and users! From 28b6cc10e3fa8a2d8a5f305b1e4f2fd0fbfa3d48 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 21 Mar 2016 22:15:33 -0700 Subject: [PATCH 2/4] Fix link [ci skip] --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 45885759..3939d03e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ Links: ------ -[Project page](file:///home/mark/engauge-digitizer-gh-pages/engauge-digitizer). +[Project page](http://markummitchell.github.io/engauge-digitizer) + +[![Join the chat at https://gitter.im/markummitchell/engauge-digitizer](https://badges.gitter.im/markummitchell/engauge-digitizer.svg)](https://gitter.im/markummitchell/engauge-digitizer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Travis build Status](https://travis-ci.org/markummitchell/engauge-digitizer.svg?branch=master)](https://travis-ci.org/markummitchell/engauge-digitizer) [![AppVeyor build status](https://ci.appveyor.com/api/projects/status/1o7p8iu8qxq0p7ri/branch/master?svg=true)](https://ci.appveyor.com/project/markummitchell/engauge-digitizer/branch/master) -[![Join the chat at https://gitter.im/markummitchell/engauge-digitizer](https://badges.gitter.im/markummitchell/engauge-digitizer.svg)](https://gitter.im/markummitchell/engauge-digitizer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From c4bbb5029439991ef7c39b3d6680a5bc5e95bd6e Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 22 Mar 2016 00:38:43 -0700 Subject: [PATCH 3/4] Minor usability enhancements - checklist docked, larger initial window --- contrib/python/insert_derived_column.py | 11 +++++++++++ dev/ProcessFlowchart.odp | Bin 0 -> 27866 bytes dev/engauge.pro.user.mmitchell.linux | 2 +- src/Checklist/ChecklistGuideWizard.cpp | 1 + src/main/MainWindow.cpp | 4 ++-- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 dev/ProcessFlowchart.odp diff --git a/contrib/python/insert_derived_column.py b/contrib/python/insert_derived_column.py index 5fbb91ca..f75e9f08 100755 --- a/contrib/python/insert_derived_column.py +++ b/contrib/python/insert_derived_column.py @@ -1,4 +1,12 @@ #!/usr/bin/python +# +# Usage - python insert_derived_column.py +# Purpose - This script reads in a table of (longitude,latitude) data points, and then +# outputs a set of evenly spaced waypoints through those points assuming a constant +# velocity (variable velocityMps) +# Installation requirements - 1) sudo apt-get install python +# 2) sudo apt-get install python-dev (or python-devel) +# 3) sudo pip install numpy from datetime import datetime, timedelta import fileinput @@ -66,7 +74,10 @@ def xyzFromLatLonAlt (latLonAlt): # Output timestamp = curDateTime.strftime ('"%j %Y %H:%M:%S.%f"') fields.insert (0, timestamp) + + # Use one of the following lines. The first is for python2, and the second is for python3 print ', '.join (str (x) for x in fields) + #print (', '.join (str (x) for x in fields)) # Update for next iteration timeTraveledS = xyzDeltaMag / velocityMps diff --git a/dev/ProcessFlowchart.odp b/dev/ProcessFlowchart.odp new file mode 100644 index 0000000000000000000000000000000000000000..8eddbe684859477bd3a2dab72f66fc545ee48ed5 GIT binary patch literal 27866 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�=gyYl{&Sm@}w?U*VNvFzuI{RsKakA=; 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 R%g>O3uV^4aF`2#`{T~UuWS#&3 literal 0 HcmV?d00001 diff --git a/dev/engauge.pro.user.mmitchell.linux b/dev/engauge.pro.user.mmitchell.linux index d40231f2..6782604a 100644 --- a/dev/engauge.pro.user.mmitchell.linux +++ b/dev/engauge.pro.user.mmitchell.linux @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/src/Checklist/ChecklistGuideWizard.cpp b/src/Checklist/ChecklistGuideWizard.cpp index 026e0771..d6324cce 100644 --- a/src/Checklist/ChecklistGuideWizard.cpp +++ b/src/Checklist/ChecklistGuideWizard.cpp @@ -103,6 +103,7 @@ QString ChecklistGuideWizard::templateHtml (CoordSystemIndex coordSystemIndex) c // Insert additional space between successive list items, using stylesheet str << ""; + str << "

" << tr ("Follow this checklist of steps to digitize your image. Each step will show a check when it has been completed."); str << "

" << tr ("The coordinates are defined by creating axis points:") << "

\n"; str << "

" << TAG_ANCHOR_AXIS_1 << " " << tr ("Add first of three axis points.") << " " << TAG_AHREF_AXIS_1 << "

\n"; str << TAG_DIV_AXIS_START_1; diff --git a/src/main/MainWindow.cpp b/src/main/MainWindow.cpp index 963e55a8..73845a15 100644 --- a/src/main/MainWindow.cpp +++ b/src/main/MainWindow.cpp @@ -2187,7 +2187,7 @@ void MainWindow::settingsReadMainWindow (QSettings &settings) // Main window geometry resize (settings.value (SETTINGS_SIZE, - QSize (400, 400)).toSize ()); + QSize (600, 600)).toSize ()); move (settings.value (SETTINGS_POS, QPoint (200, 200)).toPoint ()); @@ -2254,7 +2254,7 @@ void MainWindow::settingsReadMainWindow (QSettings &settings) addDockWidget (Qt::RightDockWidgetArea, m_dockChecklistGuide); // Add on the right to prevent error message, then immediately make undocked - m_dockChecklistGuide->setFloating(true); // Undock + m_dockChecklistGuide->setFloating(false); // Undocked is too easy to miss so start docked if (settings.contains (SETTINGS_CHECKLIST_GUIDE_DOCK_GEOMETRY)) { m_dockChecklistGuide->restoreGeometry (settings.value (SETTINGS_CHECKLIST_GUIDE_DOCK_GEOMETRY).toByteArray()); } From c854e699f7de59b2c695d82697e5c4ca15ab8484 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Tue, 22 Mar 2016 01:41:09 -0700 Subject: [PATCH 4/4] Checklist help text [ci skip] --- dev/engauge.pro.user.mmitchell.linux | 2 +- src/Checklist/ChecklistGuidePageConclusion.cpp | 10 +++++++++- src/Checklist/ChecklistGuidePageIntro.cpp | 4 +++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/dev/engauge.pro.user.mmitchell.linux b/dev/engauge.pro.user.mmitchell.linux index 6782604a..b29d6d17 100644 --- a/dev/engauge.pro.user.mmitchell.linux +++ b/dev/engauge.pro.user.mmitchell.linux @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/src/Checklist/ChecklistGuidePageConclusion.cpp b/src/Checklist/ChecklistGuidePageConclusion.cpp index ec5d1759..d0395103 100644 --- a/src/Checklist/ChecklistGuidePageConclusion.cpp +++ b/src/Checklist/ChecklistGuidePageConclusion.cpp @@ -12,7 +12,15 @@ ChecklistGuidePageConclusion::ChecklistGuidePageConclusion() : { LOG4CPP_INFO_S ((*mainCat)) << "ChecklistGuidePageConclusion::ChecklistGuidePageConclusion"; - addHtml (tr ("

A checklist guide has been created.

")); + addHtml (tr ("

A checklist guide has been created.

" + "


" + "

Why does the imported image look different? " + "After import, a filtered image is shown in the background. This filtered image is produced from " + "the original image according to the parameters set in Settings / Color Filter. When the parameters " + "have been set correctly, unimportant information (such as grid lines and background colors) has been " + "removed from the filtered images so automated feature extraction can be performed. If desirable " + "features have been removed from the image, the parameters can be adjusted using Settings / Color Filter, " + "or the original image can be displayed instead using View / Background / Show Original Image.

")); } bool ChecklistGuidePageConclusion::validatePage () diff --git a/src/Checklist/ChecklistGuidePageIntro.cpp b/src/Checklist/ChecklistGuidePageIntro.cpp index 68220950..95300015 100644 --- a/src/Checklist/ChecklistGuidePageIntro.cpp +++ b/src/Checklist/ChecklistGuidePageIntro.cpp @@ -15,5 +15,7 @@ ChecklistGuidePageIntro::ChecklistGuidePageIntro() : addHtml (tr ("

Engauge converts an image of a graph or map into numbers, as long as the image has axes and/or grid lines " "to define the coordinates.

" "

This wizard creates a checklist of steps that can serve as a helpful guide. By following those steps, you " - "can obtain digitized data points in an exported file.

")); + "can obtain digitized data points in an exported file. This wizard also provides a quick summary of the " + "most useful features of Engauge.

" + "

New users are encouraged to use this wizard.

")); }