├── images
├── GCP.png
├── Thumbs.db
├── draping.png
├── edition.png
├── epfl_logo.png
├── oblique2.png
├── toolbar1.png
├── toolbar10.png
├── toolbar11.png
├── toolbar12.png
├── toolbar13.png
├── toolbar14.png
├── toolbar15.png
├── toolbar16.png
├── toolbar2.png
├── toolbar3.png
├── toolbar4.png
├── toolbar5.png
├── toolbar6.png
├── toolbar7.png
├── toolbar8.png
├── toolbar9.png
├── virtual3D.png
├── GCPApproach.png
├── drapingSave2.png
├── mesurement.png
├── behindMountain.png
├── visualisation.png
└── reprojectOnOtherMoutains.png
├── Pic2Map
├── icon.png
├── icons
│ ├── exif.png
│ ├── icon.png
│ ├── toolbar1.png
│ ├── toolbar10.png
│ ├── toolbar11.png
│ ├── toolbar12.png
│ ├── toolbar13.png
│ ├── toolbar14.png
│ ├── toolbar15.png
│ ├── toolbar16.png
│ ├── toolbar2.png
│ ├── toolbar3.png
│ ├── toolbar4.png
│ ├── toolbar5.png
│ ├── toolbar6.png
│ ├── toolbar7.png
│ ├── toolbar8.png
│ ├── toolbar9.png
│ └── toolbar4 - Copy.png
├── dataTest
│ ├── GCPs.dat
│ ├── 07861v.jpg
│ ├── Thumbs.db
│ ├── AletschGlacierDEM.tiff
│ ├── readme.txt
│ ├── pose.kml
│ └── AletschGlacierDEM.tiff.aux.xml
├── help
│ ├── build
│ │ ├── html
│ │ │ ├── objects.inv
│ │ │ ├── _static
│ │ │ │ ├── up.png
│ │ │ │ ├── down.png
│ │ │ │ ├── file.png
│ │ │ │ ├── plus.png
│ │ │ │ ├── Thumbs.db
│ │ │ │ ├── comment.png
│ │ │ │ ├── minus.png
│ │ │ │ ├── ajax-loader.gif
│ │ │ │ ├── down-pressed.png
│ │ │ │ ├── up-pressed.png
│ │ │ │ ├── comment-bright.png
│ │ │ │ ├── comment-close.png
│ │ │ │ ├── pygments.css
│ │ │ │ ├── default.css
│ │ │ │ └── sidebar.js
│ │ │ ├── _images
│ │ │ │ ├── GCP.png
│ │ │ │ ├── Thumbs.db
│ │ │ │ ├── draping.png
│ │ │ │ ├── edition.png
│ │ │ │ ├── oblique.bmp
│ │ │ │ ├── oblique.png
│ │ │ │ ├── epfl_logo.png
│ │ │ │ ├── oblique2.png
│ │ │ │ ├── toolbar1.png
│ │ │ │ ├── toolbar10.png
│ │ │ │ ├── toolbar11.png
│ │ │ │ ├── toolbar12.png
│ │ │ │ ├── toolbar13.png
│ │ │ │ ├── toolbar14.png
│ │ │ │ ├── toolbar15.png
│ │ │ │ ├── toolbar16.png
│ │ │ │ ├── toolbar2.png
│ │ │ │ ├── toolbar3.png
│ │ │ │ ├── toolbar4.png
│ │ │ │ ├── toolbar5.png
│ │ │ │ ├── toolbar6.png
│ │ │ │ ├── toolbar7.png
│ │ │ │ ├── toolbar8.png
│ │ │ │ ├── toolbar9.png
│ │ │ │ ├── virtual3D.png
│ │ │ │ ├── GCPApproach.png
│ │ │ │ ├── drapingSave.png
│ │ │ │ ├── drapingSave2.png
│ │ │ │ ├── mesurement.png
│ │ │ │ ├── setProject.png
│ │ │ │ ├── srsProject.png
│ │ │ │ ├── behindMountain.png
│ │ │ │ ├── pluginbuilder.png
│ │ │ │ ├── visualisation.png
│ │ │ │ └── reprojectOnOtherMoutains.png
│ │ │ ├── .buildinfo
│ │ │ ├── search.html
│ │ │ └── searchindex.js
│ │ └── doctrees
│ │ │ ├── index.doctree
│ │ │ └── environment.pickle
│ ├── source
│ │ └── images
│ │ │ ├── GCP.png
│ │ │ ├── Thumbs.db
│ │ │ ├── draping.png
│ │ │ ├── edition.png
│ │ │ ├── oblique.png
│ │ │ ├── epfl_logo.png
│ │ │ ├── oblique2.png
│ │ │ ├── toolbar1.png
│ │ │ ├── toolbar10.png
│ │ │ ├── toolbar11.png
│ │ │ ├── toolbar12.png
│ │ │ ├── toolbar13.png
│ │ │ ├── toolbar14.png
│ │ │ ├── toolbar15.png
│ │ │ ├── toolbar16.png
│ │ │ ├── toolbar2.png
│ │ │ ├── toolbar3.png
│ │ │ ├── toolbar4.png
│ │ │ ├── toolbar5.png
│ │ │ ├── toolbar6.png
│ │ │ ├── toolbar7.png
│ │ │ ├── toolbar8.png
│ │ │ ├── toolbar9.png
│ │ │ ├── virtual3D.png
│ │ │ ├── GCPApproach.png
│ │ │ ├── drapingSave.png
│ │ │ ├── drapingSave2.png
│ │ │ ├── mesurement.png
│ │ │ ├── setproject.png
│ │ │ ├── srsProject.png
│ │ │ ├── behindMountain.png
│ │ │ ├── visualisation.png
│ │ │ ├── toolbar4 - Copy.png
│ │ │ └── reprojectOnOtherMoutains.png
│ ├── make.bat
│ └── Makefile
├── .vscode
│ ├── settings.json
│ └── launch.json
├── .project
├── .gitignore
├── resources.qrc
├── ui
│ ├── ui_buffering.ui
│ ├── ui_reportDialog.ui
│ ├── ui_label_settings.ui
│ ├── ui_monoplotter.ui
│ ├── ui_mesure3D.ui
│ ├── ui_disp_ini.ui
│ ├── ui_icons.ui
│ ├── ui_drapping.ui
│ ├── ui_exif2.ui
│ ├── ui_disprast.ui
│ └── ui_help_ini.ui
├── checkOpenGLVersion.py
├── __init__.py
├── metadata.txt
├── ui_buffering.py
├── measure3D.py
├── iconsdialog.py
├── ui_reportGCP.py
├── labelSettingsDialog.py
├── ui_mesure3D.py
├── ui_label_settings.py
├── buffers.py
├── exifInfo.py
├── ui_disp_ini.py
├── ui_drapping.py
├── ui_exif2.py
├── Makefile
├── ui_icons.py
├── ui_help_ini.py
├── reportDialog.py
└── initialization.py
└── README.md
/images/GCP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/GCP.png
--------------------------------------------------------------------------------
/Pic2Map/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icon.png
--------------------------------------------------------------------------------
/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/Thumbs.db
--------------------------------------------------------------------------------
/images/draping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/draping.png
--------------------------------------------------------------------------------
/images/edition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/edition.png
--------------------------------------------------------------------------------
/images/epfl_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/epfl_logo.png
--------------------------------------------------------------------------------
/images/oblique2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/oblique2.png
--------------------------------------------------------------------------------
/images/toolbar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar1.png
--------------------------------------------------------------------------------
/images/toolbar10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar10.png
--------------------------------------------------------------------------------
/images/toolbar11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar11.png
--------------------------------------------------------------------------------
/images/toolbar12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar12.png
--------------------------------------------------------------------------------
/images/toolbar13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar13.png
--------------------------------------------------------------------------------
/images/toolbar14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar14.png
--------------------------------------------------------------------------------
/images/toolbar15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar15.png
--------------------------------------------------------------------------------
/images/toolbar16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar16.png
--------------------------------------------------------------------------------
/images/toolbar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar2.png
--------------------------------------------------------------------------------
/images/toolbar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar3.png
--------------------------------------------------------------------------------
/images/toolbar4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar4.png
--------------------------------------------------------------------------------
/images/toolbar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar5.png
--------------------------------------------------------------------------------
/images/toolbar6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar6.png
--------------------------------------------------------------------------------
/images/toolbar7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar7.png
--------------------------------------------------------------------------------
/images/toolbar8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar8.png
--------------------------------------------------------------------------------
/images/toolbar9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/toolbar9.png
--------------------------------------------------------------------------------
/images/virtual3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/virtual3D.png
--------------------------------------------------------------------------------
/Pic2Map/icons/exif.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/exif.png
--------------------------------------------------------------------------------
/Pic2Map/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/icon.png
--------------------------------------------------------------------------------
/images/GCPApproach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/GCPApproach.png
--------------------------------------------------------------------------------
/images/drapingSave2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/drapingSave2.png
--------------------------------------------------------------------------------
/images/mesurement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/mesurement.png
--------------------------------------------------------------------------------
/Pic2Map/dataTest/GCPs.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/dataTest/GCPs.dat
--------------------------------------------------------------------------------
/images/behindMountain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/behindMountain.png
--------------------------------------------------------------------------------
/images/visualisation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/visualisation.png
--------------------------------------------------------------------------------
/Pic2Map/dataTest/07861v.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/dataTest/07861v.jpg
--------------------------------------------------------------------------------
/Pic2Map/dataTest/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/dataTest/Thumbs.db
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar1.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar10.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar11.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar12.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar13.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar14.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar15.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar16.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar2.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar3.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar4.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar5.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar6.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar7.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar8.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar9.png
--------------------------------------------------------------------------------
/Pic2Map/icons/toolbar4 - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/icons/toolbar4 - Copy.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/objects.inv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/objects.inv
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/GCP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/GCP.png
--------------------------------------------------------------------------------
/images/reprojectOnOtherMoutains.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/images/reprojectOnOtherMoutains.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/up.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/Thumbs.db
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/draping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/draping.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/edition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/edition.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/oblique.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/oblique.png
--------------------------------------------------------------------------------
/Pic2Map/dataTest/AletschGlacierDEM.tiff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/dataTest/AletschGlacierDEM.tiff
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/GCP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/GCP.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/down.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/file.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/plus.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/epfl_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/epfl_logo.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/oblique2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/oblique2.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar1.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar10.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar11.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar12.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar13.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar14.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar15.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar16.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar2.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar3.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar4.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar5.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar6.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar7.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar8.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar9.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/virtual3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/virtual3D.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/doctrees/index.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/doctrees/index.doctree
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/Thumbs.db
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/draping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/draping.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/edition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/edition.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/oblique.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/oblique.bmp
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/oblique.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/oblique.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/Thumbs.db
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/comment.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/minus.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/GCPApproach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/GCPApproach.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/drapingSave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/drapingSave.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/drapingSave2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/drapingSave2.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/mesurement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/mesurement.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/setproject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/setproject.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/srsProject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/srsProject.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/epfl_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/epfl_logo.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/oblique2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/oblique2.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar1.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar10.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar11.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar12.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar13.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar14.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar15.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar16.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar2.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar3.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar4.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar5.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar6.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar7.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar8.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/toolbar9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/toolbar9.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/virtual3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/virtual3D.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/behindMountain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/behindMountain.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/visualisation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/visualisation.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/doctrees/environment.pickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/doctrees/environment.pickle
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/GCPApproach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/GCPApproach.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/drapingSave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/drapingSave.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/drapingSave2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/drapingSave2.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/mesurement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/mesurement.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/setProject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/setProject.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/srsProject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/srsProject.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/ajax-loader.gif
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/down-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/down-pressed.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/up-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/up-pressed.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/toolbar4 - Copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/toolbar4 - Copy.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Deprecation
2 | This project is hosted here now: https://github.com/iggroup/pic2map/ as it is deprecated for QGIS version > 3.2X
3 |
--------------------------------------------------------------------------------
/Pic2Map/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.pythonPath": "C:\\Users\\Frederick\\Python\\python.exe",
3 | "python.linting.enabled": false
4 | }
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/behindMountain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/behindMountain.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/pluginbuilder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/pluginbuilder.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/visualisation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/visualisation.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/comment-bright.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/comment-bright.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/comment-close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_static/comment-close.png
--------------------------------------------------------------------------------
/Pic2Map/help/source/images/reprojectOnOtherMoutains.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/source/images/reprojectOnOtherMoutains.png
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_images/reprojectOnOtherMoutains.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tproduit/pic2map/HEAD/Pic2Map/help/build/html/_images/reprojectOnOtherMoutains.png
--------------------------------------------------------------------------------
/Pic2Map/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | test
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/.buildinfo:
--------------------------------------------------------------------------------
1 | # Sphinx build info version 1
2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3 | config: 2919746d307818376130bf03334d57d9
4 | tags: 645f666f9bcd5a90fca523b33c5a78b7
5 |
--------------------------------------------------------------------------------
/Pic2Map/.gitignore:
--------------------------------------------------------------------------------
1 | # python byte code files
2 | *.pyc
3 |
4 | /bin
5 | /include
6 | /lib
7 | /local
8 | /ui/resources_rc.py
9 | /ui/ui_*.py
10 | ./dialogs.ini
11 | *.db
12 |
13 | # deployment archives
14 | /*.zip
15 |
16 | # text editors temporary files
17 | *.swp
18 | *~
19 |
20 | # nose testing output
21 | /.coverage
22 | /.noseids
23 |
--------------------------------------------------------------------------------
/Pic2Map/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Python : Fichier actuel",
9 | "type": "python",
10 | "request": "launch",
11 | "program": "${file}",
12 | "console": "integratedTerminal"
13 | }
14 | ]
15 | }
--------------------------------------------------------------------------------
/Pic2Map/resources.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | icon.png
4 | toolbar1.png
5 | toolbar2.png
6 | toolbar3.png
7 | toolbar4.png
8 | toolbar5.png
9 | toolbar6.png
10 | toolbar7.png
11 | toolbar8.png
12 | toolbar9.png
13 | toolbar10.png
14 | toolbar11.png
15 | toolbar12.png
16 | toolbar13.png
17 | toolbar14.png
18 | toolbar15.png
19 | toolbar16.png
20 |
21 |
--------------------------------------------------------------------------------
/Pic2Map/dataTest/readme.txt:
--------------------------------------------------------------------------------
1 | --------------
2 | DEM data is extracted from the ASTER GDEM data set.
3 | It can be distributed since it respect one of the following conditions:
4 | 1) Paper materials on which the image produced from GDEM is printed
5 | 2) Re-projected images involving re-sampling
6 | 3) Data whose format is transformed so that the data can not be converted back to the original data
7 | 4) Value-added product (e.g., flyby movie)
8 |
9 | ASTER GDEM
10 | Copyright (c) 2009 - 2014 Japan Space Systems(J-spacesystems) All Rights Reserved.
11 |
12 | --------------
13 | Picture data comes from the Library of Congress, Prints and Photographs Division Washington, D.C. 20540 USA(http://www.loc.gov/pictures/collection/pgz/item/2001703294/).
14 | No restrictions on reproduction are specified.
15 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_buffering.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Form
4 |
5 |
6 |
7 | 0
8 | 0
9 | 391
10 | 58
11 |
12 |
13 |
14 | Form
15 |
16 |
17 |
18 |
19 | 10
20 | 30
21 | 361
22 | 23
23 |
24 |
25 |
26 | 0
27 |
28 |
29 |
30 |
31 |
32 | 20
33 | 10
34 | 101
35 | 16
36 |
37 |
38 |
39 | Buffering
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Pic2Map/checkOpenGLVersion.py:
--------------------------------------------------------------------------------
1 | from OpenGL.GL import *
2 | from PyQt5 import QtGui, QtWidgets, QtCore
3 | from PyQt5.QtGui import *
4 | from PyQt5.QtCore import *
5 | from PyQt5.QtWidgets import *
6 | from PyQt5.QtOpenGL import *
7 | from OpenGL.GLU import *
8 | import sys
9 |
10 |
11 |
12 | class CheckVersion(QGLWidget):
13 | # create an openGL context for checking the version
14 | def __init__(self, parent = None):
15 | super(CheckVersion, self).__init__(parent)
16 | self.isSupported= 0
17 |
18 | def initializeGL(self):
19 | #Get the current version of openGL
20 | #Need to do it in initializeGL because a openGL context is needed
21 |
22 | versionString = glGetString(GL_VERSION)
23 | versionString = versionString.split('.');
24 | versionString = ''.join(versionString)
25 | try:
26 | versionInt = int(versionString)
27 | if(versionInt>=310):
28 | self.isSupported = 1
29 | else:
30 | self.isSupported = 0
31 | except ValueError:
32 | self.isSupported = 0
33 |
34 |
35 |
36 | #Need version 3.1.0 or above
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/Pic2Map/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | /***************************************************************************
4 | Pic2Map
5 | A QGIS plugin
6 | Allow integration of oblique photographies
7 | -------------------
8 | begin : 2014-02-19
9 | copyright : (C) 2014 by Gillian Milani
10 | email : gillian.milani@epfl.ch
11 | ***************************************************************************/
12 |
13 | /***************************************************************************
14 | * *
15 | * This program is free software; you can redistribute it and/or modify *
16 | * it under the terms of the GNU General Public License as published by *
17 | * the Free Software Foundation; either version 2 of the License, or *
18 | * (at your option) any later version. *
19 | * *
20 | ***************************************************************************/
21 | """
22 |
23 |
24 | def classFactory(iface):
25 | from .pic2Map import Pic2Map
26 | return Pic2Map(iface)
27 |
28 |
--------------------------------------------------------------------------------
/Pic2Map/metadata.txt:
--------------------------------------------------------------------------------
1 | ; the next section is mandatory
2 | [general]
3 | name=Pic2Map
4 | email=timothee.produit@gmail.com
5 | author=Gillian Milani, Timothée Produit, Frédérick Pineault
6 | qgisMinimumVersion =3.4
7 | description=Compute the 3D orientation of a picture and provide the interaction between the picture and the map.
8 | about=Pic2map has two goals. First, it is used to compute the location and orientation of a picture with 3D Ground Control Points. The orientation can be saved in a Google Earth format. Second, it provides the interaction between the map and the picture through a Digital Elevation Model. Vector layers can be overlaid on the picture, geographic vector layer can be digitized directly in the picture, the picture can be "orthorectified".
9 | The plugin requires qt opengl python support (on Debian and derivates: python-qt4-gl). It was successfully tested in QGIS 64bits on Ubuntu and Windows.
10 | version=version 3.3
11 | tracker=https://github.com/tproduit/pic2map/issues
12 | repository=https://github.com/tproduit/pic2map/
13 | ; end of mandatory metadata
14 |
15 | ; start of optional metadata
16 | category=Raster
17 | homepage=https://github.com/tproduit/pic2map/blob/master/README.md
18 | changelog=3.3 - NEW PYTHON LIBRARY TO INSTALL : piexif - restructuration of the pose estimation and new small features
19 | tags=picture, perspective, pose estimation, orientation, orthorectification, monoplotting
20 | icon=icon.png
21 | experimental=True
22 | deprecated=False
--------------------------------------------------------------------------------
/Pic2Map/ui_buffering.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_buffering.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 |
12 | class Ui_Form(object):
13 | def setupUi(self, Form):
14 | Form.setObjectName("Form")
15 | Form.resize(391, 58)
16 | self.progressBar = QtWidgets.QProgressBar(Form)
17 | self.progressBar.setGeometry(QtCore.QRect(10, 30, 361, 23))
18 | self.progressBar.setProperty("value", 0)
19 | self.progressBar.setObjectName("progressBar")
20 | self.label = QtWidgets.QLabel(Form)
21 | self.label.setGeometry(QtCore.QRect(20, 10, 101, 16))
22 | self.label.setObjectName("label")
23 |
24 | self.retranslateUi(Form)
25 | QtCore.QMetaObject.connectSlotsByName(Form)
26 |
27 | def retranslateUi(self, Form):
28 | _translate = QtCore.QCoreApplication.translate
29 | Form.setWindowTitle(_translate("Form", "Progress"))
30 | self.label.setText(_translate("Form", "Buffering"))
31 |
32 |
33 |
34 |
35 | if __name__ == "__main__":
36 | import sys
37 | app = QtWidgets.QApplication(sys.argv)
38 | Form = QtWidgets.QWidget()
39 | ui = Ui_Form()
40 | ui.setupUi(Form)
41 | Form.show()
42 | sys.exit(app.exec_())
43 |
--------------------------------------------------------------------------------
/Pic2Map/dataTest/pose.kml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | left
5 |
6 | 8.0932998841
7 | 46.4314217451
8 | 2929.0315707980
9 | -63.3746430701
10 | 78.7204365914
11 | 0.0
12 | absolute
13 |
14 |
30 |
31 | C:/datatest/aletsch/left/left.jpg
32 |
33 | -2.4000000000
34 |
35 | -31.5386631717
36 | 31.5386631717
37 | -23.5000000000
38 | 23.5000000000
39 | 300.0000000000
40 |
41 |
42 | absolute
43 | 8.0932998841,46.4314217451,2929.0315707980
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Pic2Map/measure3D.py:
--------------------------------------------------------------------------------
1 |
2 | from builtins import str
3 | from PyQt5 import QtGui, QtWidgets, QtCore
4 | from PyQt5.QtGui import *
5 | from PyQt5.QtCore import *
6 | from PyQt5.QtWidgets import *
7 | from qgis.core import *
8 | from qgis.gui import *
9 | from math import sqrt
10 | from .ui_mesure3D import Ui_Mesure3DDialog
11 |
12 | class mesure3DDialog(QtWidgets.QDialog):
13 | closeSignal= pyqtSignal()
14 | def __init__(self):
15 | QtWidgets.QDialog.__init__(self)
16 | # create the interface
17 | self.ui = Ui_Mesure3DDialog()
18 | self.ui.setupUi(self)
19 | #self.path contains the path in picture coordinates. It is only used for drawing
20 | self.path = []
21 | #self.total contains the total length of the path in meter (3D distance)
22 | self.total = 0
23 |
24 | def closeEvent(self, event):
25 | # toggle the button when the window is closed
26 | self.closeSignal.emit()
27 |
28 | def addPoint(self,x,y):
29 | #Add a point to the path
30 | self.path.append([x,y])
31 | if len(self.path)>1:
32 | x = self.path[-2][0]-self.path[-1][0]
33 | y = self.path[-2][1]-self.path[-1][1]
34 | distance = round(sqrt(x**2+y**2),2)
35 | self.ui.textBrowser.append(str(distance))
36 | self.total += distance
37 | self.ui.textBrowser_2.setText(str(self.total))
38 |
39 | def removePath(self):
40 | # Clear the measurement buffer and the window
41 | self.path = []
42 | self.total = 0
43 | self.ui.textBrowser.clear()
44 | self.ui.textBrowser_2.clear()
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Pic2Map/iconsdialog.py:
--------------------------------------------------------------------------------
1 | """
2 | /***************************************************************************
3 | * *
4 | * This program is free software; you can redistribute it and/or modify *
5 | * it under the terms of the GNU General Public License as published by *
6 | * the Free Software Foundation; either version 2 of the License, or *
7 | * (at your option) any later version. *
8 | * *
9 | ***************************************************************************/
10 | """
11 |
12 | from PyQt5 import QtGui, QtWidgets, QtCore
13 | from PyQt5.QtGui import *
14 | from PyQt5.QtCore import *
15 | from PyQt5.QtWidgets import *
16 | from .ui_icons import Ui_iconsDialog
17 | from functools import partial
18 |
19 | class icons_dialog(QtWidgets.QDialog):
20 | def __init__(self, iconSet):
21 | QtWidgets.QDialog.__init__(self)
22 | self.uiIcons = Ui_iconsDialog()
23 | self.uiIcons.setupUi(self,iconSet)
24 | #self.center()
25 |
26 | self.uiIcons.colorMButton.clicked.connect(partial(self.showColor, self.uiIcons.colorMButton))
27 | self.uiIcons.colorCButton.clicked.connect(partial(self.showColor, self.uiIcons.colorCButton))
28 |
29 | def center(self):
30 | qr = self.frameGeometry()
31 | cp = QtWidgets.QDesktopWidget().availableGeometry().center()
32 | qr.moveCenter(cp)
33 | self.move(qr.topLeft())
34 |
35 | def showColor(self, frame):
36 | col = QtWidgets.QColorDialog.getColor()
37 | if col.isValid():
38 | frame.setStyleSheet("QWidget { background-color: %s }" % col.name())
39 |
40 |
41 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_reportDialog.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | ReportGCP
4 |
5 |
6 |
7 | 0
8 | 0
9 | 382
10 | 277
11 |
12 |
13 |
14 | Dialog
15 |
16 |
17 | -
18 |
19 |
20 | -
21 |
22 |
23 | Save Report
24 |
25 |
26 |
27 | -
28 |
29 |
30 | Qt::Horizontal
31 |
32 |
33 | QDialogButtonBox::Ok
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | buttonBox
43 | accepted()
44 | ReportGCP
45 | accept()
46 |
47 |
48 | 248
49 | 254
50 |
51 |
52 | 157
53 | 274
54 |
55 |
56 |
57 |
58 | buttonBox
59 | rejected()
60 | ReportGCP
61 | reject()
62 |
63 |
64 | 316
65 | 260
66 |
67 |
68 | 286
69 | 274
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/Pic2Map/ui_reportGCP.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_reportDialog.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 |
12 | class Ui_ReportGCP(object):
13 | def setupUi(self, ReportGCP):
14 | ReportGCP.setObjectName("ReportGCP")
15 | ReportGCP.resize(382, 277)
16 | self.gridLayout = QtWidgets.QGridLayout(ReportGCP)
17 | self.gridLayout.setObjectName("gridLayout")
18 | self.reportBrowser = QtWidgets.QTextBrowser(ReportGCP)
19 | self.reportBrowser.setObjectName("reportBrowser")
20 | self.reportBrowser.setStyleSheet('font-family : Courier')
21 | self.gridLayout.addWidget(self.reportBrowser, 0, 0, 1, 2)
22 | self.pushButton = QtWidgets.QPushButton(ReportGCP)
23 | self.pushButton.setObjectName("pushButton")
24 | self.gridLayout.addWidget(self.pushButton, 1, 0, 1, 1)
25 | self.buttonBox = QtWidgets.QDialogButtonBox(ReportGCP)
26 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
27 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Ok)
28 | self.buttonBox.setObjectName("buttonBox")
29 | self.gridLayout.addWidget(self.buttonBox, 1, 1, 1, 1)
30 |
31 | self.retranslateUi(ReportGCP)
32 | self.buttonBox.accepted.connect(ReportGCP.accept)
33 | self.buttonBox.rejected.connect(ReportGCP.reject)
34 | QtCore.QMetaObject.connectSlotsByName(ReportGCP)
35 |
36 | def retranslateUi(self, ReportGCP):
37 | _translate = QtCore.QCoreApplication.translate
38 | ReportGCP.setWindowTitle(_translate("ReportGCP", "Report on GCPs"))
39 | self.pushButton.setText(_translate("ReportGCP", "Save Report"))
40 |
41 |
42 |
43 |
44 | if __name__ == "__main__":
45 | import sys
46 | app = QtWidgets.QApplication(sys.argv)
47 | ReportGCP = QtWidgets.QDialog()
48 | ui = Ui_ReportGCP()
49 | ui.setupUi(ReportGCP)
50 | ReportGCP.show()
51 | sys.exit(app.exec_())
52 |
--------------------------------------------------------------------------------
/Pic2Map/labelSettingsDialog.py:
--------------------------------------------------------------------------------
1 | """
2 | /***************************************************************************
3 | * *
4 | * This program is free software; you can redistribute it and/or modify *
5 | * it under the terms of the GNU General Public License as published by *
6 | * the Free Software Foundation; either version 2 of the License, or *
7 | * (at your option) any later version. *
8 | * *
9 | ***************************************************************************/
10 | """
11 |
12 | from PyQt5 import QtGui, QtWidgets, QtCore
13 | from PyQt5.QtGui import *
14 | from PyQt5.QtCore import *
15 | from PyQt5.QtWidgets import *
16 | from .ui_label_settings import Ui_LabelSetting
17 | from functools import partial
18 |
19 | class label_dialog(QtWidgets.QDialog):
20 | def __init__(self, labelSet):
21 | QtWidgets.QDialog.__init__(self)
22 | self.ui = Ui_LabelSetting()
23 | self.ui.setupUi(self, labelSet)
24 | #self.center()
25 | self.ui.colorButton.clicked.connect(partial(self.showColor, self.ui.colorButton))
26 | self.ui.fontButton.clicked.connect(self.showFont)
27 |
28 | self.font = labelSet[1]
29 | self.ui.label_2.setFont(labelSet[1])
30 | self.ui.doubleSpinBox.setValue(labelSet[2])
31 | self.ui.doubleSpinBox_2.setValue(labelSet[3])
32 |
33 |
34 | def center(self):
35 | qr = self.frameGeometry()
36 | cp = QtWidgets.QDesktopWidget().availableGeometry().center()
37 | qr.moveCenter(cp)
38 | self.move(qr.topLeft())
39 |
40 | def showFont(self):
41 | font, ok = QtWidgets.QFontDialog.getFont()
42 | if ok:
43 | self.font = font
44 | self.ui.label_2.setFont(font)
45 |
46 | def showColor(self, frame):
47 | # Open the PyQt dialog box
48 | col = QtWidgets.QColorDialog.getColor()
49 | if col.isValid():
50 | # color the button
51 | frame.setStyleSheet("QWidget { background-color: %s }" % col.name())
52 | # color the font
53 | self.ui.label_2.setStyleSheet('QLabel {color: %s }' % col.name())
54 |
55 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_label_settings.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | LabelSetting
4 |
5 |
6 |
7 | 0
8 | 0
9 | 174
10 | 204
11 |
12 |
13 |
14 | Label Settings
15 |
16 |
17 | -
18 |
19 |
20 | Color
21 |
22 |
23 |
24 | -
25 |
26 |
27 |
28 |
29 |
30 |
31 | -
32 |
33 |
34 | Font
35 |
36 |
37 |
38 | -
39 |
40 |
41 | offset X
42 |
43 |
44 |
45 | -
46 |
47 |
48 | -
49 |
50 |
51 | offset Y
52 |
53 |
54 |
55 | -
56 |
57 |
58 | -
59 |
60 |
61 | Qt::Horizontal
62 |
63 |
64 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok
65 |
66 |
67 |
68 | -
69 |
70 |
71 | Set Font
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | buttonBox
81 | accepted()
82 | LabelSetting
83 | accept()
84 |
85 |
86 | 248
87 | 254
88 |
89 |
90 | 157
91 | 274
92 |
93 |
94 |
95 |
96 | buttonBox
97 | rejected()
98 | LabelSetting
99 | reject()
100 |
101 |
102 | 316
103 | 260
104 |
105 |
106 | 286
107 | 274
108 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/search.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Search — Pic2Map 0.1 documentation
10 |
11 |
12 |
13 |
14 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
Search
53 |
54 |
55 |
56 | Please activate JavaScript to enable the search
57 | functionality.
58 |
59 |
60 |
61 | From here you can search these documents. Enter your search
62 | words into the box below and click "search". Note that the search
63 | function will automatically search for all of the words. Pages
64 | containing fewer words won't appear in the result list.
65 |
66 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
83 |
84 |
85 |
94 |
98 |
99 |
--------------------------------------------------------------------------------
/Pic2Map/ui_mesure3D.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_mesure3D.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 |
12 | class Ui_Mesure3DDialog(object):
13 | def setupUi(self, Mesure3DDialog):
14 | Mesure3DDialog.setObjectName("Mesure3DDialog")
15 | Mesure3DDialog.resize(432, 239)
16 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
17 | sizePolicy.setHorizontalStretch(0)
18 | sizePolicy.setVerticalStretch(0)
19 | sizePolicy.setHeightForWidth(Mesure3DDialog.sizePolicy().hasHeightForWidth())
20 | Mesure3DDialog.setSizePolicy(sizePolicy)
21 | self.textBrowser_2 = QtWidgets.QTextBrowser(Mesure3DDialog)
22 | self.textBrowser_2.setGeometry(QtCore.QRect(110, 180, 311, 21))
23 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Maximum)
24 | sizePolicy.setHorizontalStretch(0)
25 | sizePolicy.setVerticalStretch(0)
26 | sizePolicy.setHeightForWidth(self.textBrowser_2.sizePolicy().hasHeightForWidth())
27 | self.textBrowser_2.setSizePolicy(sizePolicy)
28 | self.textBrowser_2.setFrameShadow(QtWidgets.QFrame.Sunken)
29 | self.textBrowser_2.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)
30 | self.textBrowser_2.setObjectName("textBrowser_2")
31 | self.textBrowser = QtWidgets.QTextBrowser(Mesure3DDialog)
32 | self.textBrowser.setGeometry(QtCore.QRect(20, 30, 401, 137))
33 | self.textBrowser.setObjectName("textBrowser")
34 | self.label = QtWidgets.QLabel(Mesure3DDialog)
35 | self.label.setGeometry(QtCore.QRect(20, 10, 91, 16))
36 | self.label.setObjectName("label")
37 | self.label_2 = QtWidgets.QLabel(Mesure3DDialog)
38 | self.label_2.setGeometry(QtCore.QRect(60, 180, 41, 21))
39 | self.label_2.setObjectName("label_2")
40 | self.buttonBox = QtWidgets.QDialogButtonBox(Mesure3DDialog)
41 | self.buttonBox.setGeometry(QtCore.QRect(340, 210, 75, 23))
42 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
43 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close)
44 | self.buttonBox.setObjectName("buttonBox")
45 |
46 | self.retranslateUi(Mesure3DDialog)
47 | self.buttonBox.accepted.connect(Mesure3DDialog.accept)
48 | self.buttonBox.rejected.connect(Mesure3DDialog.reject)
49 | QtCore.QMetaObject.connectSlotsByName(Mesure3DDialog)
50 |
51 | def retranslateUi(self, Mesure3DDialog):
52 | _translate = QtCore.QCoreApplication.translate
53 | Mesure3DDialog.setWindowTitle(_translate("Mesure3DDialog", "Mesure 3D"))
54 | self.textBrowser_2.setHtml(_translate("Mesure3DDialog", "\n"
55 | " \n"
58 | "
"))
59 | self.label.setText(_translate("Mesure3DDialog", "Segments [mètres]"))
60 | self.label_2.setText(_translate("Mesure3DDialog", "Total:"))
61 |
62 |
63 |
64 |
65 | if __name__ == "__main__":
66 | import sys
67 | app = QtWidgets.QApplication(sys.argv)
68 | Mesure3DDialog = QtWidgets.QDialog()
69 | ui = Ui_Mesure3DDialog()
70 | ui.setupUi(Mesure3DDialog)
71 | Mesure3DDialog.show()
72 | sys.exit(app.exec_())
73 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/pygments.css:
--------------------------------------------------------------------------------
1 | .highlight .hll { background-color: #ffffcc }
2 | .highlight { background: #eeffcc; }
3 | .highlight .c { color: #408090; font-style: italic } /* Comment */
4 | .highlight .err { border: 1px solid #FF0000 } /* Error */
5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */
6 | .highlight .o { color: #666666 } /* Operator */
7 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
8 | .highlight .cp { color: #007020 } /* Comment.Preproc */
9 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
10 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */
12 | .highlight .ge { font-style: italic } /* Generic.Emph */
13 | .highlight .gr { color: #FF0000 } /* Generic.Error */
14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */
16 | .highlight .go { color: #333333 } /* Generic.Output */
17 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
18 | .highlight .gs { font-weight: bold } /* Generic.Strong */
19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */
21 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
22 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
23 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
24 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */
25 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
26 | .highlight .kt { color: #902000 } /* Keyword.Type */
27 | .highlight .m { color: #208050 } /* Literal.Number */
28 | .highlight .s { color: #4070a0 } /* Literal.String */
29 | .highlight .na { color: #4070a0 } /* Name.Attribute */
30 | .highlight .nb { color: #007020 } /* Name.Builtin */
31 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
32 | .highlight .no { color: #60add5 } /* Name.Constant */
33 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
34 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
35 | .highlight .ne { color: #007020 } /* Name.Exception */
36 | .highlight .nf { color: #06287e } /* Name.Function */
37 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
38 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
39 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
40 | .highlight .nv { color: #bb60d5 } /* Name.Variable */
41 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
43 | .highlight .mf { color: #208050 } /* Literal.Number.Float */
44 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */
45 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */
46 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */
47 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
48 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */
49 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
50 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */
51 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
52 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
53 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
54 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */
55 | .highlight .sr { color: #235388 } /* Literal.String.Regex */
56 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */
57 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */
58 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
59 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
60 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
61 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
62 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */
--------------------------------------------------------------------------------
/Pic2Map/ui_label_settings.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_label_settings.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 | try:
12 | _encoding = QtWidgets.QApplication.UnicodeUTF8
13 | def _translate(context, text, disambig):
14 | return QtCore.QCoreApplication.translate(context, text, disambig, _encoding)
15 | except AttributeError:
16 | def _translate(context, text, disambig):
17 | return QtCore.QCoreApplication.translate(context, text, disambig)
18 |
19 | class Ui_LabelSetting(object):
20 | def setupUi(self, LabelSetting, labelSet):
21 | LabelSetting.setObjectName("LabelSetting")
22 | LabelSetting.resize(174, 204)
23 | self.gridLayout = QtWidgets.QGridLayout(LabelSetting)
24 | self.gridLayout.setObjectName("gridLayout")
25 | self.label = QtWidgets.QLabel(LabelSetting)
26 | self.label.setObjectName("label")
27 | self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
28 | self.colorButton = QtWidgets.QPushButton(LabelSetting)
29 | self.colorButton.setText("")
30 | self.colorButton.setObjectName("colorButton")
31 | self.colorButton.setStyleSheet("QWidget { background-color: %s }" % labelSet[0].name())
32 | self.gridLayout.addWidget(self.colorButton, 0, 1, 1, 1)
33 | self.label_2 = QtWidgets.QLabel(LabelSetting)
34 | self.label_2.setObjectName("label_2")
35 | self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
36 | self.label_3 = QtWidgets.QLabel(LabelSetting)
37 | self.label_3.setObjectName("label_3")
38 | self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
39 | self.doubleSpinBox = QtWidgets.QDoubleSpinBox(LabelSetting)
40 | self.doubleSpinBox.setObjectName("doubleSpinBox")
41 | self.gridLayout.addWidget(self.doubleSpinBox, 2, 1, 1, 1)
42 | self.doubleSpinBox.setMinimum(-100)
43 | self.doubleSpinBox.setMaximum(100)
44 | self.label_4 = QtWidgets.QLabel(LabelSetting)
45 | self.label_4.setObjectName("label_4")
46 | self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
47 | self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(LabelSetting)
48 | self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
49 | self.gridLayout.addWidget(self.doubleSpinBox_2, 3, 1, 1, 1)
50 | self.doubleSpinBox_2.setMinimum(-100)
51 | self.doubleSpinBox_2.setMaximum(100)
52 | self.buttonBox = QtWidgets.QDialogButtonBox(LabelSetting)
53 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
54 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
55 | self.buttonBox.setObjectName("buttonBox")
56 | self.gridLayout.addWidget(self.buttonBox, 4, 0, 1, 2)
57 | self.fontButton = QtWidgets.QPushButton(LabelSetting)
58 | self.fontButton.setObjectName("fontButton")
59 | self.gridLayout.addWidget(self.fontButton, 1, 1, 1, 1)
60 |
61 | self.retranslateUi(LabelSetting)
62 | self.buttonBox.accepted.connect(LabelSetting.accept)
63 | self.buttonBox.rejected.connect(LabelSetting.reject)
64 | QtCore.QMetaObject.connectSlotsByName(LabelSetting)
65 |
66 | def retranslateUi(self, LabelSetting):
67 | LabelSetting.setWindowTitle(_translate("LabelSetting", "Label Settings", None))
68 | self.label.setText(_translate("LabelSetting", "Color", None))
69 | self.label_2.setText(_translate("LabelSetting", "Font", None))
70 | self.label_3.setText(_translate("LabelSetting", "offset X", None))
71 | self.label_4.setText(_translate("LabelSetting", "offset Y", None))
72 | self.fontButton.setText(_translate("LabelSetting", "Set Font", None))
73 |
74 |
75 |
76 |
77 |
78 | if __name__ == "__main__":
79 | import sys
80 | app = QtWidgets.QApplication(sys.argv)
81 | LabelSetting = QtWidgets.QDialog()
82 | ui = Ui_LabelSetting()
83 | ui.setupUi(LabelSetting)
84 | LabelSetting.show()
85 | sys.exit(app.exec_())
86 |
--------------------------------------------------------------------------------
/Pic2Map/dataTest/AletschGlacierDEM.tiff.aux.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -2.076
6 | 4154.076
7 | 1000
8 | 0
9 | 0
10 | 6891|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|12|31|24|35|46|55|28|22|34|27|28|48|55|42|44|54|79|97|88|86|80|69|76|74|83|102|96|69|90|85|102|136|136|212|182|170|146|186|117|168|172|166|163|147|232|208|275|293|298|384|419|346|304|320|367|378|325|531|366|342|318|326|312|411|308|318|311|282|292|382|313|314|352|303|347|344|381|293|270|263|281|326|392|332|271|276|287|260|267|332|301|294|269|269|270|340|268|266|261|247|216|322|228|218|226|250|221|230|321|255|216|238|197|215|271|232|185|226|203|210|186|257|213|198|226|231|206|247|227|202|183|209|190|257|185|208|227|233|213|218|266|230|227|216|228|206|242|209|205|219|211|176|219|232|217|188|217|199|203|270|211|214|217|208|219|262|210|270|242|263|255|243|293|249|251|242|262|241|289|259|237|284|267|256|213|315|233|213|239|234|254|269|230|246|213|253|204|321|246|253|250|235|288|230|313|280|256|276|250|274|313|239|289|293|307|346|311|380|305|282|305|303|342|366|332|307|285|312|304|378|338|317|352|318|318|311|475|439|413|348|396|374|449|343|388|432|417|417|443|537|436|435|448|451|469|590|535|527|521|453|425|557|425|444|462|490|487|519|600|466|481|525|517|482|634|531|498|510|525|564|662|753|594|579|570|568|515|703|556|539|553|551|570|533|716|595|597|595|672|665|780|602|610|583|639|594|757|614|679|676|731|716|778|829|710|718|764|787|741|1021|773|850|774|798|741|799|970|769|762|752|749|707|931|739|699|660|747|711|819|693|736|804|828|831|786|1070|815|980|873|852|775|1085|828|837|642|756|705|720|1020|847|826|810|759|762|991|888|762|829|810|882|1021|799|849|771|862|908|940|1190|837|929|924|946|956|1271|956|944|964|926|885|973|1219|1063|1053|1001|948|1028|1223|1011|943|926|923|949|1224|987|985|991|982|1020|961|1242|892|979|989|1087|991|1263|1060|1102|1233|1200|1002|1042|1254|945|1038|1036|941|1023|1212|964|996|1016|1003|1028|1176|1041|1008|974|988|943|947|1298|1004|1047|1156|1249|1182|1561|1331|1334|1300|1354|1292|1338|1583|1255|1259|1368|1342|1407|1718|1428|1368|1349|1333|1316|1733|1497|1402|1389|1389|1406|1422|1660|1260|1364|1213|1297|1231|1531|1200|1178|1218|1124|1245|1270|1521|1236|1268|1291|1258|1339|1608|1340|1321|1385|1446|1479|1919|1513|1288|1243|1259|1258|1300|1750|1360|1305|1318|1284|1243|1587|1263|1297|1327|1393|1437|1374|1636|1273|1246|1288|1333|1232|1594|1285|1330|1342|1249|1388|1632|1375|1341|1249|1321|1301|1377|1521|1391|1285|1275|1259|1169|1546|1381|1363|1361|1312|1364|1308|1766|1299|1344|1371|1283|1318|1560|1333|1296|1280|1306|1243|1426|1232|1167|1161|1159|1213|1217|1517|1152|1240|1200|1213|1237|1431|1197|1124|1156|1097|1077|1062|1338|1082|1003|1071|1060|971|1230|1090|968|1008|928|950|1161|962|947|969|945|987|889|1258|960|817|918|889|864|1113|954|826|922|855|860|842|1015|833|769|834|813|754|1043|801|801|803|825|776|773|912|787|802|732|716|784|914|728|664|655|655|669|800|735|690|650|639|749|632|883|672|601|663|641|605|796|570|531|532|540|526|498|637|531|558|535|576|589|672|495|525|527|519|500|560|493|473|453|517|449|453|527|403|389|397|367|322|472|326|323|365|318|302|276|319|254|226|203|249|249|324|259|239|206|237|223|229|204|179|168|204|167|176|222|188|192|179|174|160|196|164|113|157|138|124|127|163|144|113|112|84|87|100|78|67|62|76|79|83|55|68|55|60|52|36|47|37|31|19|29|14|25|14|17|27|19|11|26|19|21|24|13|20|13|13|15|8|18|15|17|17|11|13|20|10|13|16|17|10|16|12|16|13|13|21|10|7|10|17|10|19|4|3|3|2|7|3
11 |
12 |
13 |
14 | 4152
15 | 2642.5149270483
16 | 0
17 | 716.79430681364
18 | 100
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_monoplotter.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Monoplotter
4 |
5 |
6 |
7 | 0
8 | 0
9 | 757
10 | 442
11 |
12 |
13 |
14 |
15 | 0
16 | 0
17 |
18 |
19 |
20 | MainWindow
21 |
22 |
23 | false
24 |
25 |
26 | QMainWindow::AllowTabbedDocks
27 |
28 |
29 | false
30 |
31 |
32 |
42 |
43 |
44 |
45 |
46 | 0
47 | 0
48 |
49 |
50 |
51 | QDockWidget::NoDockWidgetFeatures
52 |
53 |
54 | 2
55 |
56 |
57 |
58 | -
59 |
60 |
61 | true
62 |
63 |
64 |
65 | 0
66 | 0
67 |
68 |
69 |
70 | Window Size:
71 |
72 |
73 |
74 | -
75 |
76 |
77 | -
78 |
79 |
80 | Measure on plane
81 |
82 |
83 |
84 | -
85 |
86 |
87 | Measure 3D
88 |
89 |
90 |
91 | -
92 |
93 |
94 | Drap on DEM
95 |
96 |
97 |
98 | -
99 |
100 |
101 | Save Image
102 |
103 |
104 |
105 | -
106 |
107 |
108 | Refresh Layers
109 |
110 |
111 |
112 | -
113 |
114 |
115 | Add Labels
116 |
117 |
118 |
119 | -
120 |
121 |
122 | Qt::Vertical
123 |
124 |
125 |
126 | 20
127 | 40
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_mesure3D.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Mesure3DDialog
4 |
5 |
6 |
7 | 0
8 | 0
9 | 432
10 | 239
11 |
12 |
13 |
14 |
15 | 0
16 | 0
17 |
18 |
19 |
20 | Mesure 3D
21 |
22 |
23 |
24 |
25 | 110
26 | 180
27 | 311
28 | 21
29 |
30 |
31 |
32 |
33 | 0
34 | 0
35 |
36 |
37 |
38 | QFrame::Sunken
39 |
40 |
41 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
42 | <html><head><meta name="qrichtext" content="1" /><style type="text/css">
43 | p, li { white-space: pre-wrap; }
44 | </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
45 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html>
46 |
47 |
48 | Qt::TextSelectableByMouse
49 |
50 |
51 |
52 |
53 |
54 | 20
55 | 30
56 | 401
57 | 137
58 |
59 |
60 |
61 |
62 |
63 |
64 | 20
65 | 10
66 | 91
67 | 16
68 |
69 |
70 |
71 | Segments [mètres]
72 |
73 |
74 |
75 |
76 |
77 | 60
78 | 180
79 | 41
80 | 21
81 |
82 |
83 |
84 | Total:
85 |
86 |
87 |
88 |
89 |
90 | 340
91 | 210
92 | 75
93 | 23
94 |
95 |
96 |
97 | Qt::Horizontal
98 |
99 |
100 | QDialogButtonBox::Close
101 |
102 |
103 |
104 |
105 |
106 |
107 | buttonBox
108 | accepted()
109 | Mesure3DDialog
110 | accept()
111 |
112 |
113 | 248
114 | 254
115 |
116 |
117 | 157
118 | 274
119 |
120 |
121 |
122 |
123 | buttonBox
124 | rejected()
125 | Mesure3DDialog
126 | reject()
127 |
128 |
129 | 316
130 | 260
131 |
132 |
133 | 286
134 | 274
135 |
136 |
137 |
138 |
139 |
140 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_disp_ini.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Dialog
4 |
5 |
6 |
7 | 0
8 | 0
9 | 447
10 | 195
11 |
12 |
13 |
14 | Dialog
15 |
16 |
17 | -
18 |
19 |
20 | -
21 |
22 |
23 | Input Elevation Model
24 |
25 |
26 |
27 | -
28 |
29 |
30 | Input Picture
31 |
32 |
33 |
34 | -
35 |
36 |
37 | ...
38 |
39 |
40 |
41 | -
42 |
43 |
44 | ...
45 |
46 |
47 |
48 | -
49 |
50 |
51 | Qt::Horizontal
52 |
53 |
54 | QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok
55 |
56 |
57 |
58 | -
59 |
60 |
61 | -
62 |
63 |
64 | Method used for pose estimation:
65 |
66 |
67 | -
68 |
69 |
70 | GCP approach
71 |
72 |
73 | true
74 |
75 |
76 | buttonGroup
77 |
78 |
79 |
80 | -
81 |
82 |
83 | Virtual 3D approach
84 |
85 |
86 | buttonGroup
87 |
88 |
89 |
90 |
91 |
92 |
93 | -
94 |
95 |
96 | Ortho-photo
97 |
98 |
99 |
100 | -
101 |
102 |
103 | -
104 |
105 |
106 | ...
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 | buttonBox
116 | accepted()
117 | Dialog
118 | accept()
119 |
120 |
121 | 248
122 | 254
123 |
124 |
125 | 157
126 | 274
127 |
128 |
129 |
130 |
131 | buttonBox
132 | rejected()
133 | Dialog
134 | reject()
135 |
136 |
137 | 316
138 | 260
139 |
140 |
141 | 286
142 | 274
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
--------------------------------------------------------------------------------
/Pic2Map/help/make.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | REM Command file for Sphinx documentation
4 |
5 | if "%SPHINXBUILD%" == "" (
6 | set SPHINXBUILD=sphinx-build
7 | )
8 | set BUILDDIR=build
9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
10 | if NOT "%PAPER%" == "" (
11 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
12 | )
13 |
14 | if "%1" == "" goto help
15 |
16 | if "%1" == "help" (
17 | :help
18 | echo.Please use `make ^` where ^ is one of
19 | echo. html to make standalone HTML files
20 | echo. dirhtml to make HTML files named index.html in directories
21 | echo. singlehtml to make a single large HTML file
22 | echo. pickle to make pickle files
23 | echo. json to make JSON files
24 | echo. htmlhelp to make HTML files and a HTML help project
25 | echo. qthelp to make HTML files and a qthelp project
26 | echo. devhelp to make HTML files and a Devhelp project
27 | echo. epub to make an epub
28 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
29 | echo. text to make text files
30 | echo. man to make manual pages
31 | echo. changes to make an overview over all changed/added/deprecated items
32 | echo. linkcheck to check all external links for integrity
33 | echo. doctest to run all doctests embedded in the documentation if enabled
34 | goto end
35 | )
36 |
37 | if "%1" == "clean" (
38 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
39 | del /q /s %BUILDDIR%\*
40 | goto end
41 | )
42 |
43 | if "%1" == "html" (
44 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
45 | echo.
46 | echo.Build finished. The HTML pages are in %BUILDDIR%/html.
47 | goto end
48 | )
49 |
50 | if "%1" == "dirhtml" (
51 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
52 | echo.
53 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
54 | goto end
55 | )
56 |
57 | if "%1" == "singlehtml" (
58 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
59 | echo.
60 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
61 | goto end
62 | )
63 |
64 | if "%1" == "pickle" (
65 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
66 | echo.
67 | echo.Build finished; now you can process the pickle files.
68 | goto end
69 | )
70 |
71 | if "%1" == "json" (
72 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
73 | echo.
74 | echo.Build finished; now you can process the JSON files.
75 | goto end
76 | )
77 |
78 | if "%1" == "htmlhelp" (
79 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
80 | echo.
81 | echo.Build finished; now you can run HTML Help Workshop with the ^
82 | .hhp project file in %BUILDDIR%/htmlhelp.
83 | goto end
84 | )
85 |
86 | if "%1" == "qthelp" (
87 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
88 | echo.
89 | echo.Build finished; now you can run "qcollectiongenerator" with the ^
90 | .qhcp project file in %BUILDDIR%/qthelp, like this:
91 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\templateclass.qhcp
92 | echo.To view the help file:
93 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\templateclass.ghc
94 | goto end
95 | )
96 |
97 | if "%1" == "devhelp" (
98 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
99 | echo.
100 | echo.Build finished.
101 | goto end
102 | )
103 |
104 | if "%1" == "epub" (
105 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
106 | echo.
107 | echo.Build finished. The epub file is in %BUILDDIR%/epub.
108 | goto end
109 | )
110 |
111 | if "%1" == "latex" (
112 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
113 | echo.
114 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
115 | goto end
116 | )
117 |
118 | if "%1" == "text" (
119 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
120 | echo.
121 | echo.Build finished. The text files are in %BUILDDIR%/text.
122 | goto end
123 | )
124 |
125 | if "%1" == "man" (
126 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
127 | echo.
128 | echo.Build finished. The manual pages are in %BUILDDIR%/man.
129 | goto end
130 | )
131 |
132 | if "%1" == "changes" (
133 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
134 | echo.
135 | echo.The overview file is in %BUILDDIR%/changes.
136 | goto end
137 | )
138 |
139 | if "%1" == "linkcheck" (
140 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
141 | echo.
142 | echo.Link check complete; look for any errors in the above output ^
143 | or in %BUILDDIR%/linkcheck/output.txt.
144 | goto end
145 | )
146 |
147 | if "%1" == "doctest" (
148 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
149 | echo.
150 | echo.Testing of doctests in the sources finished, look at the ^
151 | results in %BUILDDIR%/doctest/output.txt.
152 | goto end
153 | )
154 |
155 | :end
156 |
--------------------------------------------------------------------------------
/Pic2Map/help/Makefile:
--------------------------------------------------------------------------------
1 | # Makefile for Sphinx documentation
2 | #
3 |
4 | # You can set these variables from the command line.
5 | SPHINXOPTS =
6 | SPHINXBUILD = sphinx-build
7 | PAPER =
8 | BUILDDIR = build
9 |
10 | # Internal variables.
11 | PAPEROPT_a4 = -D latex_paper_size=a4
12 | PAPEROPT_letter = -D latex_paper_size=letter
13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
14 |
15 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
16 |
17 | help:
18 | @echo "Please use \`make ' where is one of"
19 | @echo " html to make standalone HTML files"
20 | @echo " dirhtml to make HTML files named index.html in directories"
21 | @echo " singlehtml to make a single large HTML file"
22 | @echo " pickle to make pickle files"
23 | @echo " json to make JSON files"
24 | @echo " htmlhelp to make HTML files and a HTML help project"
25 | @echo " qthelp to make HTML files and a qthelp project"
26 | @echo " devhelp to make HTML files and a Devhelp project"
27 | @echo " epub to make an epub"
28 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
29 | @echo " latexpdf to make LaTeX files and run them through pdflatex"
30 | @echo " text to make text files"
31 | @echo " man to make manual pages"
32 | @echo " changes to make an overview of all changed/added/deprecated items"
33 | @echo " linkcheck to check all external links for integrity"
34 | @echo " doctest to run all doctests embedded in the documentation (if enabled)"
35 |
36 | clean:
37 | -rm -rf $(BUILDDIR)/*
38 |
39 | html:
40 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
41 | @echo
42 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
43 |
44 | dirhtml:
45 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
46 | @echo
47 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
48 |
49 | singlehtml:
50 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
51 | @echo
52 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
53 |
54 | pickle:
55 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
56 | @echo
57 | @echo "Build finished; now you can process the pickle files."
58 |
59 | json:
60 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
61 | @echo
62 | @echo "Build finished; now you can process the JSON files."
63 |
64 | htmlhelp:
65 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
66 | @echo
67 | @echo "Build finished; now you can run HTML Help Workshop with the" \
68 | ".hhp project file in $(BUILDDIR)/htmlhelp."
69 |
70 | qthelp:
71 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
72 | @echo
73 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \
74 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
75 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/templateclass.qhcp"
76 | @echo "To view the help file:"
77 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/templateclass.qhc"
78 |
79 | devhelp:
80 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
81 | @echo
82 | @echo "Build finished."
83 | @echo "To view the help file:"
84 | @echo "# mkdir -p $$HOME/.local/share/devhelp/templateclass"
85 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/templateclass"
86 | @echo "# devhelp"
87 |
88 | epub:
89 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
90 | @echo
91 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
92 |
93 | latex:
94 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
95 | @echo
96 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
97 | @echo "Run \`make' in that directory to run these through (pdf)latex" \
98 | "(use \`make latexpdf' here to do that automatically)."
99 |
100 | latexpdf:
101 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
102 | @echo "Running LaTeX files through pdflatex..."
103 | make -C $(BUILDDIR)/latex all-pdf
104 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
105 |
106 | text:
107 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
108 | @echo
109 | @echo "Build finished. The text files are in $(BUILDDIR)/text."
110 |
111 | man:
112 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
113 | @echo
114 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
115 |
116 | changes:
117 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
118 | @echo
119 | @echo "The overview file is in $(BUILDDIR)/changes."
120 |
121 | linkcheck:
122 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
123 | @echo
124 | @echo "Link check complete; look for any errors in the above output " \
125 | "or in $(BUILDDIR)/linkcheck/output.txt."
126 |
127 | doctest:
128 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
129 | @echo "Testing of doctests in the sources finished, look at the " \
130 | "results in $(BUILDDIR)/doctest/output.txt."
131 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_icons.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | iconsDialog
4 |
5 |
6 |
7 | 0
8 | 0
9 | 235
10 | 270
11 |
12 |
13 |
14 | Dialog
15 |
16 |
17 | -
18 |
19 |
20 | GCP in Monoplotter
21 |
22 |
23 | -
24 |
25 |
26 | Size of Icons
27 |
28 |
29 |
30 | -
31 |
32 |
33 | Color
34 |
35 |
36 |
37 | -
38 |
39 |
40 | 0
41 |
42 |
43 |
44 | -
45 |
46 |
47 | 0
48 |
49 |
50 |
51 | -
52 |
53 |
54 | Width of Lines
55 |
56 |
57 |
58 |
59 |
60 |
61 | -
62 |
63 |
64 | GCP in Canvas
65 |
66 |
67 | -
68 |
69 |
70 | Color
71 |
72 |
73 |
74 | -
75 |
76 |
77 | -
78 |
79 |
80 | -
81 |
82 |
83 | Size of Icons
84 |
85 |
86 |
87 | -
88 |
89 |
90 | Width of Lines
91 |
92 |
93 |
94 |
95 |
96 |
97 | -
98 |
99 |
100 | Qt::Horizontal
101 |
102 |
103 | QDialogButtonBox::Cancel|QDialogButtonBox::Ok
104 |
105 |
106 |
107 | -
108 |
109 |
110 | GCP in 3D viewer
111 |
112 |
113 | -
114 |
115 |
116 | Size of cube
117 |
118 |
119 |
120 | -
121 |
122 |
123 | 1000
124 |
125 |
126 | 10
127 |
128 |
129 | 100
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 | buttonBox
142 | accepted()
143 | iconsDialog
144 | accept()
145 |
146 |
147 | 248
148 | 254
149 |
150 |
151 | 157
152 | 274
153 |
154 |
155 |
156 |
157 | buttonBox
158 | rejected()
159 | iconsDialog
160 | reject()
161 |
162 |
163 | 316
164 | 260
165 |
166 |
167 | 286
168 | 274
169 |
170 |
171 |
172 |
173 |
174 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/default.css:
--------------------------------------------------------------------------------
1 | /*
2 | * default.css_t
3 | * ~~~~~~~~~~~~~
4 | *
5 | * Sphinx stylesheet -- default theme.
6 | *
7 | * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | @import url("basic.css");
13 |
14 | /* -- page layout ----------------------------------------------------------- */
15 |
16 | body {
17 | font-family: sans-serif;
18 | font-size: 100%;
19 | background-color: #11303d;
20 | color: #000;
21 | margin: 0;
22 | padding: 0;
23 | }
24 |
25 | div.document {
26 | background-color: #1c4e63;
27 | }
28 |
29 | div.documentwrapper {
30 | float: left;
31 | width: 100%;
32 | }
33 |
34 | div.bodywrapper {
35 | margin: 0 0 0 230px;
36 | }
37 |
38 | div.body {
39 | background-color: #ffffff;
40 | color: #000000;
41 | padding: 0 20px 30px 20px;
42 | }
43 |
44 | div.footer {
45 | color: #ffffff;
46 | width: 100%;
47 | padding: 9px 0 9px 0;
48 | text-align: center;
49 | font-size: 75%;
50 | }
51 |
52 | div.footer a {
53 | color: #ffffff;
54 | text-decoration: underline;
55 | }
56 |
57 | div.related {
58 | background-color: #133f52;
59 | line-height: 30px;
60 | color: #ffffff;
61 | }
62 |
63 | div.related a {
64 | color: #ffffff;
65 | }
66 |
67 | div.sphinxsidebar {
68 | }
69 |
70 | div.sphinxsidebar h3 {
71 | font-family: 'Trebuchet MS', sans-serif;
72 | color: #ffffff;
73 | font-size: 1.4em;
74 | font-weight: normal;
75 | margin: 0;
76 | padding: 0;
77 | }
78 |
79 | div.sphinxsidebar h3 a {
80 | color: #ffffff;
81 | }
82 |
83 | div.sphinxsidebar h4 {
84 | font-family: 'Trebuchet MS', sans-serif;
85 | color: #ffffff;
86 | font-size: 1.3em;
87 | font-weight: normal;
88 | margin: 5px 0 0 0;
89 | padding: 0;
90 | }
91 |
92 | div.sphinxsidebar p {
93 | color: #ffffff;
94 | }
95 |
96 | div.sphinxsidebar p.topless {
97 | margin: 5px 10px 10px 10px;
98 | }
99 |
100 | div.sphinxsidebar ul {
101 | margin: 10px;
102 | padding: 0;
103 | color: #ffffff;
104 | }
105 |
106 | div.sphinxsidebar a {
107 | color: #98dbcc;
108 | }
109 |
110 | div.sphinxsidebar input {
111 | border: 1px solid #98dbcc;
112 | font-family: sans-serif;
113 | font-size: 1em;
114 | }
115 |
116 |
117 |
118 | /* -- hyperlink styles ------------------------------------------------------ */
119 |
120 | a {
121 | color: #355f7c;
122 | text-decoration: none;
123 | }
124 |
125 | a:visited {
126 | color: #355f7c;
127 | text-decoration: none;
128 | }
129 |
130 | a:hover {
131 | text-decoration: underline;
132 | }
133 |
134 |
135 |
136 | /* -- body styles ----------------------------------------------------------- */
137 |
138 | div.body h1,
139 | div.body h2,
140 | div.body h3,
141 | div.body h4,
142 | div.body h5,
143 | div.body h6 {
144 | font-family: 'Trebuchet MS', sans-serif;
145 | background-color: #f2f2f2;
146 | font-weight: normal;
147 | color: #20435c;
148 | border-bottom: 1px solid #ccc;
149 | margin: 20px -20px 10px -20px;
150 | padding: 3px 0 3px 10px;
151 | }
152 |
153 | div.body h1 { margin-top: 0; font-size: 200%; }
154 | div.body h2 { font-size: 160%; }
155 | div.body h3 { font-size: 140%; }
156 | div.body h4 { font-size: 120%; }
157 | div.body h5 { font-size: 110%; }
158 | div.body h6 { font-size: 100%; }
159 |
160 | a.headerlink {
161 | color: #c60f0f;
162 | font-size: 0.8em;
163 | padding: 0 4px 0 4px;
164 | text-decoration: none;
165 | }
166 |
167 | a.headerlink:hover {
168 | background-color: #c60f0f;
169 | color: white;
170 | }
171 |
172 | div.body p, div.body dd, div.body li {
173 | text-align: justify;
174 | line-height: 130%;
175 | }
176 |
177 | div.admonition p.admonition-title + p {
178 | display: inline;
179 | }
180 |
181 | div.admonition p {
182 | margin-bottom: 5px;
183 | }
184 |
185 | div.admonition pre {
186 | margin-bottom: 5px;
187 | }
188 |
189 | div.admonition ul, div.admonition ol {
190 | margin-bottom: 5px;
191 | }
192 |
193 | div.note {
194 | background-color: #eee;
195 | border: 1px solid #ccc;
196 | }
197 |
198 | div.seealso {
199 | background-color: #ffc;
200 | border: 1px solid #ff6;
201 | }
202 |
203 | div.topic {
204 | background-color: #eee;
205 | }
206 |
207 | div.warning {
208 | background-color: #ffe4e4;
209 | border: 1px solid #f66;
210 | }
211 |
212 | p.admonition-title {
213 | display: inline;
214 | }
215 |
216 | p.admonition-title:after {
217 | content: ":";
218 | }
219 |
220 | pre {
221 | padding: 5px;
222 | background-color: #eeffcc;
223 | color: #333333;
224 | line-height: 120%;
225 | border: 1px solid #ac9;
226 | border-left: none;
227 | border-right: none;
228 | }
229 |
230 | tt {
231 | background-color: #ecf0f3;
232 | padding: 0 1px 0 1px;
233 | font-size: 0.95em;
234 | }
235 |
236 | th {
237 | background-color: #ede;
238 | }
239 |
240 | .warning tt {
241 | background: #efc2c2;
242 | }
243 |
244 | .note tt {
245 | background: #d6d6d6;
246 | }
247 |
248 | .viewcode-back {
249 | font-family: sans-serif;
250 | }
251 |
252 | div.viewcode-block:target {
253 | background-color: #f4debf;
254 | border-top: 1px solid #ac9;
255 | border-bottom: 1px solid #ac9;
256 | }
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_drapping.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ui_drapping
4 |
5 |
6 |
7 | 0
8 | 0
9 | 736
10 | 630
11 |
12 |
13 |
14 |
15 | 0
16 | 0
17 |
18 |
19 |
20 | MainWindow
21 |
22 |
23 | false
24 |
25 |
26 | QMainWindow::AllowTabbedDocks
27 |
28 |
29 | false
30 |
31 |
32 |
42 |
43 |
44 |
45 |
46 | 0
47 | 0
48 |
49 |
50 |
51 | QDockWidget::NoDockWidgetFeatures
52 |
53 |
54 | 2
55 |
56 |
57 |
58 | -
59 |
60 |
61 | true
62 |
63 |
64 |
65 | 0
66 | 0
67 |
68 |
69 |
70 | Pixel size [m]
71 |
72 |
73 |
74 | -
75 |
76 |
77 | 1
78 |
79 |
80 | 100
81 |
82 |
83 | 10
84 |
85 |
86 |
87 | -
88 |
89 |
90 | Bounding Box
91 |
92 |
93 |
94 | -
95 |
96 |
97 | QFrame::Box
98 |
99 |
100 | QFrame::Raised
101 |
102 |
103 | 2
104 |
105 |
106 | -
107 |
108 |
109 | TextLabel
110 |
111 |
112 |
113 | -
114 |
115 |
116 | TextLabel
117 |
118 |
119 |
120 | -
121 |
122 |
123 | QFrame::NoFrame
124 |
125 |
126 | QFrame::Plain
127 |
128 |
129 | TextLabel
130 |
131 |
132 |
133 | -
134 |
135 |
136 | TextLabel
137 |
138 |
139 |
140 |
141 |
142 |
143 | -
144 |
145 |
146 | Save raster
147 |
148 |
149 |
150 | -
151 |
152 |
153 | Qt::Vertical
154 |
155 |
156 | QSizePolicy::Expanding
157 |
158 |
159 |
160 | 20
161 | 260
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/_static/sidebar.js:
--------------------------------------------------------------------------------
1 | /*
2 | * sidebar.js
3 | * ~~~~~~~~~~
4 | *
5 | * This script makes the Sphinx sidebar collapsible.
6 | *
7 | * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
8 | * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
9 | * used to collapse and expand the sidebar.
10 | *
11 | * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
12 | * and the width of the sidebar and the margin-left of the document
13 | * are decreased. When the sidebar is expanded the opposite happens.
14 | * This script saves a per-browser/per-session cookie used to
15 | * remember the position of the sidebar among the pages.
16 | * Once the browser is closed the cookie is deleted and the position
17 | * reset to the default (expanded).
18 | *
19 | * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS.
20 | * :license: BSD, see LICENSE for details.
21 | *
22 | */
23 |
24 | $(function() {
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | // global elements used by the functions.
34 | // the 'sidebarbutton' element is defined as global after its
35 | // creation, in the add_sidebar_button function
36 | var bodywrapper = $('.bodywrapper');
37 | var sidebar = $('.sphinxsidebar');
38 | var sidebarwrapper = $('.sphinxsidebarwrapper');
39 |
40 | // for some reason, the document has no sidebar; do not run into errors
41 | if (!sidebar.length) return;
42 |
43 | // original margin-left of the bodywrapper and width of the sidebar
44 | // with the sidebar expanded
45 | var bw_margin_expanded = bodywrapper.css('margin-left');
46 | var ssb_width_expanded = sidebar.width();
47 |
48 | // margin-left of the bodywrapper and width of the sidebar
49 | // with the sidebar collapsed
50 | var bw_margin_collapsed = '.8em';
51 | var ssb_width_collapsed = '.8em';
52 |
53 | // colors used by the current theme
54 | var dark_color = $('.related').css('background-color');
55 | var light_color = $('.document').css('background-color');
56 |
57 | function sidebar_is_collapsed() {
58 | return sidebarwrapper.is(':not(:visible)');
59 | }
60 |
61 | function toggle_sidebar() {
62 | if (sidebar_is_collapsed())
63 | expand_sidebar();
64 | else
65 | collapse_sidebar();
66 | }
67 |
68 | function collapse_sidebar() {
69 | sidebarwrapper.hide();
70 | sidebar.css('width', ssb_width_collapsed);
71 | bodywrapper.css('margin-left', bw_margin_collapsed);
72 | sidebarbutton.css({
73 | 'margin-left': '0',
74 | 'height': bodywrapper.height()
75 | });
76 | sidebarbutton.find('span').text('»');
77 | sidebarbutton.attr('title', _('Expand sidebar'));
78 | document.cookie = 'sidebar=collapsed';
79 | }
80 |
81 | function expand_sidebar() {
82 | bodywrapper.css('margin-left', bw_margin_expanded);
83 | sidebar.css('width', ssb_width_expanded);
84 | sidebarwrapper.show();
85 | sidebarbutton.css({
86 | 'margin-left': ssb_width_expanded-12,
87 | 'height': bodywrapper.height()
88 | });
89 | sidebarbutton.find('span').text('«');
90 | sidebarbutton.attr('title', _('Collapse sidebar'));
91 | document.cookie = 'sidebar=expanded';
92 | }
93 |
94 | function add_sidebar_button() {
95 | sidebarwrapper.css({
96 | 'float': 'left',
97 | 'margin-right': '0',
98 | 'width': ssb_width_expanded - 28
99 | });
100 | // create the button
101 | sidebar.append(
102 | ''
103 | );
104 | var sidebarbutton = $('#sidebarbutton');
105 | light_color = sidebarbutton.css('background-color');
106 | // find the height of the viewport to center the '<<' in the page
107 | var viewport_height;
108 | if (window.innerHeight)
109 | viewport_height = window.innerHeight;
110 | else
111 | viewport_height = $(window).height();
112 | sidebarbutton.find('span').css({
113 | 'display': 'block',
114 | 'margin-top': (viewport_height - sidebar.position().top - 20) / 2
115 | });
116 |
117 | sidebarbutton.click(toggle_sidebar);
118 | sidebarbutton.attr('title', _('Collapse sidebar'));
119 | sidebarbutton.css({
120 | 'color': '#FFFFFF',
121 | 'border-left': '1px solid ' + dark_color,
122 | 'font-size': '1.2em',
123 | 'cursor': 'pointer',
124 | 'height': bodywrapper.height(),
125 | 'padding-top': '1px',
126 | 'margin-left': ssb_width_expanded - 12
127 | });
128 |
129 | sidebarbutton.hover(
130 | function () {
131 | $(this).css('background-color', dark_color);
132 | },
133 | function () {
134 | $(this).css('background-color', light_color);
135 | }
136 | );
137 | }
138 |
139 | function set_position_from_cookie() {
140 | if (!document.cookie)
141 | return;
142 | var items = document.cookie.split(';');
143 | for(var k=0; k\n"
77 | " \n"
80 | "Part of the focal information is found in the EXIF File. You need to enter the size of the sensor diagonal in [mm].
\n"
81 | "
\n"
82 | "1. Check the website http://www.digicamdb.com/
\n"
83 | "2. Find the diagonal length in [mm] of your sensor
\n"
84 | "3. Enter it in the line below
\n"
85 | "4. Read the focal length on the right down line and use it in the pose estimation
"))
86 | self.pushButton.setText(_translate("Exif2", "Get Focal"))
87 | self.label.setText(_translate("Exif2", "Diagonal Length of Sensor [mm]"))
88 | self.label_2.setText(_translate("Exif2", "Focal [pixel unit]"))
89 | self.importXYButton.setText(_translate("Exif2", "Import Coordinate "))
90 | self.saveXYButton.setText(_translate("Exif2", "Save Coordinate "))
91 |
92 |
93 |
94 |
95 |
96 | if __name__ == "__main__":
97 | import sys
98 | app = QtWidgets.QApplication(sys.argv)
99 | Exif2 = QtWidgets.QDialog()
100 | ui = Ui_Exif2()
101 | ui.setupUi(Exif2)
102 | Exif2.show()
103 | sys.exit(app.exec_())
104 |
--------------------------------------------------------------------------------
/Pic2Map/Makefile:
--------------------------------------------------------------------------------
1 | #/***************************************************************************
2 | # DPFEPlugin
3 | #
4 | # Gestion des permis de fouilles
5 | # -------------------
6 | # begin : 2014-09-24
7 | # git sha : $Format:%H$
8 | # copyright : (C) 2014 by Camptocamp SA
9 | # email : info@camptocamp.com
10 | # ***************************************************************************/
11 | #
12 | #/***************************************************************************
13 | # * *
14 | # * This program is free software; you can redistribute it and/or modify *
15 | # * it under the terms of the GNU General Public License as published by *
16 | # * the Free Software Foundation; either version 2 of the License, or *
17 | # * (at your option) any later version. *
18 | # * *
19 | # ***************************************************************************/
20 |
21 | ###################CONFIGURE HERE########################
22 | PLUGINNAME = Pic2Map
23 | PACKAGES_NO_UI = core widgets
24 | PACKAGES = $(PACKAGES_NO_UI) ui
25 | TRANSLATIONS = DPFE_fr.ts
26 |
27 | #this can be overiden by calling QGIS_PREFIX_PATH=/my/path make
28 | # DEFAULT_QGIS_PREFIX_PATH=/usr/local/qgis-master
29 | DEFAULT_QGIS_PREFIX_PATH=/usr
30 | ###################END CONFIGURE#########################
31 |
32 | PACKAGESSOURCES := $(shell find $(PACKAGES) -name "*.py")
33 | SOURCES := dpfe_plugin.py $(PACKAGESSOURCES)
34 |
35 | # QGIS PATHS
36 | ifndef QGIS_PREFIX_PATH
37 | export QGIS_PREFIX_PATH=$(DEFAULT_QGIS_PREFIX_PATH)
38 | endif
39 |
40 | export LD_LIBRARY_PATH:="$(QGIS_PREFIX_PATH)/lib:$(LD_LIBRARY_PATH)"
41 | export PYTHONPATH:=$(PYTHONPATH):$(QGIS_PREFIX_PATH)/share/qgis/python:$(HOME)/.qgis2/python/plugins:$(CURDIR)/..:$(CURDIR)/lib/python2.7/site-packages/
42 | export PYTHONPATH:=$(PYTHONPATH):$(CURDIR)/test # PG
43 |
44 | ifndef QGIS_DEBUG
45 | # Default to Quiet version
46 | export QGIS_DEBUG=0
47 | export QGIS_LOG_FILE=/dev/null
48 | export QGIS_DEBUG_FILE=/dev/null
49 | endif
50 |
51 | default: compile
52 | .PHONY: clean transclean deploy doc help
53 |
54 | help:
55 | @echo
56 | @echo "------------------"
57 | @echo "Available commands"
58 | @echo "------------------"
59 | @echo
60 | @echo 'make [compile]'
61 | @echo 'make clean'
62 | @echo 'make test'
63 | @echo 'make package VERSION=\ HASH=\'
64 | @echo 'make deploy'
65 | @echo 'make stylecheck|pep8|pylint'
66 | @echo 'make help'
67 |
68 | test: compile transcompile
69 | @echo
70 | @echo "----------------------"
71 | @echo "Regression Test Suite"
72 | @echo "----------------------"
73 |
74 | @# Preceding dash means that make will continue in case of errors
75 | @-export PYTHONPATH=`pwd`:$(PYTHONPATH); \
76 | export QGIS_DEBUG=0; \
77 | export QGIS_LOG_FILE=/dev/null; \
78 | nosetests -v --with-id --with-coverage --cover-package=. \
79 | 3>&1 1>&2 2>&3 3>&- || true
80 | @echo "----------------------"
81 | @echo "If you get a 'no module named qgis.core error, try sourcing"
82 | @echo "the helper script we have provided first then run make test."
83 | @echo "e.g. source run-env-linux.sh ; make test"
84 | @echo "----------------------"
85 |
86 | ################COMPILE#######################
87 | compile:
88 | @echo
89 | @echo "------------------------------"
90 | @echo "Compile ui and resources forms"
91 | @echo "------------------------------"
92 | make -C help/ html
93 | #make -C doc/dev api
94 | #make -C doc/dev html
95 |
96 | ################CLEAN#######################
97 | clean:
98 | @echo
99 | @echo "------------------------------"
100 | @echo "Clean ui and resources forms"
101 | @echo "------------------------------"
102 | rm -rf bin include lib local
103 | rm -f *.pyc
104 | make clean -C ui
105 | make clean -C resources
106 | make clean -C doc/user
107 | #make clean -C doc/dev
108 |
109 | ################TESTS#######################
110 | .ONESHELL:
111 | tests:
112 | @echo "------------------------------"
113 | @echo "Running test suite"
114 | @echo "------------------------------"
115 | export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
116 | export PYTHONPATH=$(PYTHONPATH)
117 | ./bin/pip install -q mock coverage
118 | unset GREP_OPTIONS
119 | nosetests -v test --nocapture --with-id --with-coverage --cover-package=$(PLUGINNAME) 3>&1 1>&2 2>&3 3>&- | \grep -v "^Object::" || true
120 |
121 | ################DOCS#######################
122 | # build documentation with sphinx
123 | doc:
124 | make -C doc/user html
125 | #make -C doc/dev api
126 | #make -C doc/dev html
127 |
128 | ################PACKAGE############################
129 | # Create a zip package of the plugin named $(PLUGINNAME).zip.
130 | # This requires use of git (your plugin development directory must be a
131 | # git repository).
132 | # To use, pass a valid commit or tag as follows:
133 | # make package VERSION=0.3.2 HASH=release-0.3.2
134 | # make package VERSION=0.3.2 HASH=master
135 | # make package VERSION=0.3.2 HASH=83c34c7d
136 |
137 | package: compile
138 | rm -f $(PLUGINNAME).zip
139 | rm -rf $(PLUGINNAME)/
140 | #mkdir -p $(PLUGINNAME)/ui/
141 | mkdir -p $(PLUGINNAME)/help/build
142 | #cp -r lib/ $(PLUGINNAME)/
143 | #cp ui/*.py $(PLUGINNAME)/ui/
144 | cp -r help/build/html/ $(PLUGINNAME)/help/build/
145 | git archive -o $(PLUGINNAME).zip --prefix=$(PLUGINNAME)/ $(HASH)
146 | zip -d $(PLUGINNAME).zip $(PLUGINNAME)/\*Makefile
147 | zip -d $(PLUGINNAME).zip $(PLUGINNAME)/.gitignore
148 | zip -g $(PLUGINNAME).zip $(PLUGINNAME)/*/*
149 | zip -g $(PLUGINNAME).zip `find $(PLUGINNAME)/help/build/html`
150 | rm -rf $(PLUGINNAME)/
151 | mv $(PLUGINNAME).zip $(PLUGINNAME).$(VERSION).zip
152 | echo "Created package: $(PLUGINNAME).$(VERSION).zip"
153 |
154 |
155 | ################VALIDATION#######################
156 | # validate syntax style
157 | stylecheck: pep8 pylint
158 |
159 | .ONESHELL:
160 | pylint:
161 | @echo
162 | @echo "-----------------"
163 | @echo "Pylint violations"
164 | @echo "-----------------"
165 | @./bin/pip install -q pylint
166 | @export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)
167 | @export PYTHONPATH=$(PYTHONPATH)
168 | # @./bin/pylint --output-format=parseable --reports=y --rcfile=pylintrc $(PACKAGES_NO_UI) || true
169 | @./bin/pylint --reports=y --rcfile=pylintrc $(PACKAGES_NO_UI) || true
170 |
171 | pep8:
172 | @echo
173 | @echo "-----------"
174 | @echo "PEP8 issues"
175 | @echo "-----------"
176 | @./bin/pip install -q pep8
177 | @./bin/pep8 --repeat --ignore=E501 --exclude ui,lib,doc resources . || true
178 |
--------------------------------------------------------------------------------
/Pic2Map/help/build/html/searchindex.js:
--------------------------------------------------------------------------------
1 | Search.setIndex({envversion:42,terms:{represent:0,all:0,code:0,forget:0,orthogon:0,osx:[],skip:0,consum:0,month:0,four:0,abil:0,follow:0,alt:0,research:0,implemant:[],content:[],accur:0,depend:0,zone:0,send:0,nord:0,sens:[],worth:0,digit:[],sourc:0,everi:0,far:0,distort:[],mous:0,trough:0,disast:0,fall:0,veri:0,affect:0,strang:0,adwda:[],level:[],button:0,list:0,upload:[],"try":0,adjust:0,small:0,synergi:0,impli:0,resourc:[],direct:0,enjoi:0,rate:0,video:0,download:0,click:0,integr:[],even:0,index:0,dialogu:[],appear:0,compar:0,altitud:0,abl:0,brief:0,melt:0,current:0,delet:0,version:0,"new":0,method:0,told:[],pose:[],pyopengl:0,behavior:0,situat:0,gener:0,here:0,water:0,alwasi:[],rescla:[],ubuntu:0,ratio:0,becom:0,sinc:0,valu:0,wait:0,box:0,search:0,pretti:0,precis:0,initialz:[],chang:0,mix:0,photogrammetri:0,activ:[],modul:0,prefer:0,apt:0,put:0,visibl:0,instal:[],bre:[],select:0,reproject:0,usg:0,from:0,describ:[],would:0,epsg:0,doubl:0,regist:0,two:0,everybodi:[],few:0,camera:0,call:0,recommend:0,taken:0,choleski:0,preview:0,until:0,toggl:0,more:0,peopl:0,relat:0,warp:0,accept:0,aris:0,known:0,hole:[],given:0,must:0,account:0,word:0,augment:0,work:0,dem:0,eas:0,under:0,purpos:0,"10mb":0,obliqu:0,control:0,tab:0,give:0,process:0,challeng:0,sudo:0,templat:[],high:0,minimum:0,rectif:[],want:0,tak:0,alwai:0,cours:[],goal:0,divid:0,tilt:0,travel:0,comfort:[],tile:0,instead:0,simpl:0,recogn:0,horizon:0,referenc:0,after:0,variant:0,befor:0,wrong:[],plane:0,photogrametri:[],redund:[],stabil:0,save:0,devi:0,favorit:0,correspond:0,ghz:0,inform:0,ortho:[],shade:0,nvidia:0,order:0,lasig:0,help:0,move:0,becaus:0,jpeg:0,graduat:0,still:0,mainli:0,paramet:0,group:0,worldwind:0,geo:0,fix:0,lausann:[],better:0,platform:[],window:0,rapidli:0,restart:0,qgi:[],main:0,pixel:0,finer:0,them:0,good:0,crash:0,greater:[],thei:0,python:0,bound:0,band:0,symposium:0,front:0,introduct:0,edit:0,perspect:0,refresh:0,easili:0,achiev:0,mode:0,each:0,found:0,rotat:0,mean:0,compil:[],rigour:[],due:0,laboratori:0,globe:0,hard:0,idea:0,realli:0,homograph:0,year:0,our:0,happen:0,extract:0,orient:0,out:0,matrix:0,space:0,goe:[],openen:[],categori:0,hill:0,wich:[],gov:0,forth:0,levenberg:0,difficulti:0,sp3:0,linear:0,insid:0,agfdhgfjf:[],differ:0,standard:0,reason:0,base:0,ask:0,org:[],gdal:0,care:[],raster:0,wai:0,launch:[],could:0,pictur:0,mac:[],keep:0,motion:0,place:0,isn:[],outsid:0,geometri:0,principl:[],think:0,first:0,origin:0,softwar:0,dont:[],directli:0,perturb:[],onc:0,arrai:0,independ:0,qualiti:0,number:0,restrict:0,mai:0,alreadi:0,done:0,open:0,ont:[],size:0,guess:0,width:0,top:0,asfasd:[],least:0,paint:0,master:0,too:0,gpu:0,"final":0,store:0,low:[],option:0,tool:0,ogr:0,geotiff:0,part:0,consult:0,exactli:0,than:0,png:0,produit:0,wide:0,provid:0,remov:0,zero:0,xonsid:[],project:0,reus:0,gillian:0,balanc:0,posit:0,design:0,comput:0,clip:0,viewer:0,ram:0,ani:0,have:0,disadvantag:0,need:0,mountain:0,squar:0,moreov:0,snow:0,also:0,satellit:0,without:0,take:0,which:0,textur:0,sure:0,elev:0,trace:0,normal:0,buffer:0,previou:0,reach:[],avalanch:0,most:0,rigor:0,awd:[],why:[],don:0,url:0,milani:0,doe:[],determin:0,azimuth:0,usual:0,section:0,fact:0,gain:0,monoplott:[],show:0,lightn:0,bring:0,polylin:0,empir:0,radic:0,earth:0,font:0,trivial:0,find:0,fifth:0,ground:0,xml:0,onli:0,slow:0,locat:0,ellipsoid:0,explain:0,configur:0,solut:0,behind:0,jam:0,black:0,factor:0,folder:0,local:0,precsi:[],cube:0,variou:0,get:0,express:[],watch:[],cannot:0,meter:0,progress:0,openend:[],photographi:0,youtub:[],requir:[],bar:0,enabl:0,synthet:0,reload:[],bad:0,common:[],srtm:0,contain:0,essenc:0,where:0,vision:0,view:0,wiki:[],universal_transverse_mercator_coordinate_system:[],set:0,terrain:0,accord:0,see:[],result:0,transpar:0,close:0,best:0,awar:0,detect:0,wikipedia:0,tend:0,state:0,dlt:0,"import":[],awai:0,email:0,adv:[],qt4:0,quadro:0,screen:0,extens:0,incident:0,rapid:0,extent:0,solv:0,come:0,both:0,last:0,framebuff:0,howev:0,atmsopher:[],display:0,etc:0,capabl:0,asdasdsa222:[],mani:0,com:[],load:0,simpli:[],point:0,color:0,trunk:0,non:0,"135m":0,quit:0,vertic:0,second:0,duo:0,stretch:0,antag:[],hardli:[],obstacl:0,been:0,marquardt:0,much:0,toolbar:[],interest:0,basic:0,trunc:[],moutain:[],hesit:0,capabilit:0,imag:0,resolut:0,coordin:0,understand:[],educ:0,present:0,convers:0,"case":0,heavier:0,therefor:0,thesi:0,look:0,toogl:0,can:0,easier:0,calcul:0,abov:0,error:0,everyon:0,loop:0,opt:0,layer:[],advantag:0,ctrl:0,dfasda:[],jpg:[],conf:[],sever:0,heightmap:0,develop:0,harsh:0,author:[],perform:0,make:0,senseful:0,cross:0,same:0,complex:0,pan:0,complet:0,wheel:0,wgs84:0,hand:0,fairli:[],nix:[],rais:0,user:0,refin:0,canva:0,wherev:0,implement:0,focal:0,googl:0,center:0,well:0,exampl:0,command:0,thi:0,choos:0,traffic:0,model:0,left:0,explan:0,comment:0,distanc:0,drawn:0,just:0,photo:[],superimpos:0,shape:0,speed:0,yet:0,enlighten:0,clipper:0,asdsadd:[],easi:[],hint:[],enlight:[],senseless:[],desktop:0,rescal:0,add:0,appli:0,correpond:[],real:0,applic:0,format:0,read:0,game:0,five:0,know:0,background:0,press:0,world:0,bit:0,recurs:0,tif:0,intel:0,measur:[],like:0,zoom:0,princip:0,unstabl:0,either:0,realiti:0,page:[],www:0,lasigrepositori:0,deal:0,what:0,spring:0,interact:[],some:0,back:0,symbolog:0,understood:0,intern:0,tuia:0,landslid:0,guarante:0,scale:0,exif:0,bottom:0,kml:0,recognit:0,mathemat:0,larg:0,unit:0,happend:[],refer:0,machin:0,core:0,particular:0,shadow:0,vertex:0,ration:[],terrestri:0,step:0,repositori:0,epfl:0,between:0,orthoimag:0,about:0,central:0,column:0,http:0,label:0,manag:0,dialog:0,act:0,phasi:0,disabl:0,own:[],logo:[],tiff:0,georeferenc:0,within:[],easy_instal:0,three:0,down:0,right:0,ensur:0,openlay:0,wikimedia:[],your:0,east:0,triangl:0,suffici:0,opengl:[],support:0,initial:[],question:0,transform:0,fast:0,happi:[],avail:0,start:0,calk:0,interfac:0,includ:0,lot:0,"3wic6pyuaku":[],creation:0,form:0,enough:0,navig:0,link:0,translat:0,placement:0,line:0,categor:0,etrs89:0,reset:0,pull:0,made:[],consist:0,possibl:0,geospati:0,displai:0,troubl:0,utm:0,below:0,limit:0,problem:0,similar:0,clear:0,featur:0,creat:0,dure:0,pic:[],doesn:0,repres:0,exist:0,file:0,fdasda:[],check:0,fill:0,again:0,equat:0,polygon:0,allow:0,when:0,detail:0,virtual:[],field:[],other:0,spatial:0,test:[],adwdwa:[],you:0,nice:0,area:0,star:0,drap:[],aster:0,earthexplor:0,consid:0,"30km":0,"timoth\u00e9":0,guarant:[],algorithm:0,descript:0,gradient:0,text:[],time:0,profil:0},objtypes:{},objnames:{},filenames:["index"],titles:["Welcome to Pic2Map’s documentation!"],objects:{},titleterms:{layer:0,concept:0,monoplott:0,scene:0,indic:[],dataset:0,virtual:0,tabl:0,confort:[],instal:0,welcom:0,opengl:0,interact:0,comfort:0,system:0,landscap:[],gcp:0,estim:0,requir:0,qgi:0,test:0,experi:0,approach:0,pic2map:0,map:[],digit:0,run:[],testhelp:[],pose:0,initi:0,visual:0,data:0,technic:0,toolbar:0,measur:0,drape:0,plugin:[],builder:[],trick:0,ortho:0,integr:0,document:0,rectif:0}})
--------------------------------------------------------------------------------
/Pic2Map/ui_icons.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_icons.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 | try:
12 | _encoding = QtWidgets.QApplication.UnicodeUTF8
13 | def _translate(context, text, disambig):
14 | return QtCore.QCoreApplication.translate(context, text, disambig, _encoding)
15 | except AttributeError:
16 | def _translate(context, text, disambig):
17 | return QtCore.QCoreApplication.translate(context, text, disambig)
18 |
19 | class Ui_iconsDialog(object):
20 | def setupUi(self, iconsDialog,iconSet):
21 | iconsDialog.setObjectName("iconsDialog")
22 | iconsDialog.resize(235, 270)
23 | self.gridLayout = QtWidgets.QGridLayout(iconsDialog)
24 | self.gridLayout.setObjectName("gridLayout")
25 | self.groupBoxCanvas = QtWidgets.QGroupBox(iconsDialog)
26 | self.groupBoxCanvas.setObjectName("groupBoxCanvas")
27 | self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBoxCanvas)
28 | self.gridLayout_2.setObjectName("gridLayout_2")
29 | self.label = QtWidgets.QLabel(self.groupBoxCanvas)
30 | self.label.setObjectName("label")
31 | self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
32 | self.colorMButton = QtWidgets.QPushButton(self.groupBoxCanvas)
33 | self.colorMButton.setObjectName("colorMButton")
34 | self.colorMButton.setStyleSheet("QWidget { background-color: %s }" % iconSet.colorM.name())
35 | self.gridLayout_2.addWidget(self.colorMButton, 0, 2, 1, 1)
36 | self.spinBoxSM = QtWidgets.QSpinBox(self.groupBoxCanvas)
37 | self.spinBoxSM.setObjectName("spinBoxSM")
38 | self.spinBoxSM.setValue(iconSet.SM)
39 | self.gridLayout_2.addWidget(self.spinBoxSM, 0, 1, 1, 1)
40 | self.spinBoxWM = QtWidgets.QSpinBox(self.groupBoxCanvas)
41 | self.spinBoxWM.setObjectName("spinBoxWM")
42 | self.spinBoxWM.setValue(iconSet.WM)
43 | self.gridLayout_2.addWidget(self.spinBoxWM, 1, 1, 1, 1)
44 | self.label_2 = QtWidgets.QLabel(self.groupBoxCanvas)
45 | self.label_2.setObjectName("label_2")
46 | self.gridLayout_2.addWidget(self.label_2, 1, 0, 1, 1)
47 | self.gridLayout.addWidget(self.groupBoxCanvas, 0, 0, 1, 1)
48 | self.groupBoxMonoplot = QtWidgets.QGroupBox(iconsDialog)
49 | self.groupBoxMonoplot.setObjectName("groupBoxMonoplot")
50 | self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBoxMonoplot)
51 | self.gridLayout_3.setObjectName("gridLayout_3")
52 | self.colorCButton = QtWidgets.QPushButton(self.groupBoxMonoplot)
53 | self.colorCButton.setObjectName("colorCButton")
54 | self.colorCButton.setStyleSheet("QWidget { background-color: %s }" % iconSet.colorC.name())
55 | self.gridLayout_3.addWidget(self.colorCButton, 0, 2, 1, 1)
56 | self.spinBoxSC = QtWidgets.QSpinBox(self.groupBoxMonoplot)
57 | self.spinBoxSC.setObjectName("spinBoxSC")
58 | self.spinBoxSC.setValue(iconSet.SC)
59 | self.gridLayout_3.addWidget(self.spinBoxSC, 0, 1, 1, 1)
60 | self.spinBoxWC = QtWidgets.QSpinBox(self.groupBoxMonoplot)
61 | self.spinBoxWC.setObjectName("spinBoxWC")
62 | self.spinBoxWC.setValue(iconSet.WC)
63 | self.gridLayout_3.addWidget(self.spinBoxWC, 1, 1, 1, 1)
64 | self.label_5 = QtWidgets.QLabel(self.groupBoxMonoplot)
65 | self.label_5.setObjectName("label_5")
66 | self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 1)
67 | self.label_6 = QtWidgets.QLabel(self.groupBoxMonoplot)
68 | self.label_6.setObjectName("label_6")
69 | self.gridLayout_3.addWidget(self.label_6, 1, 0, 1, 1)
70 | self.gridLayout.addWidget(self.groupBoxMonoplot, 1, 0, 1, 1)
71 | self.buttonBox = QtWidgets.QDialogButtonBox(iconsDialog)
72 | self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
73 | self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
74 | self.buttonBox.setObjectName("buttonBox")
75 | self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 1)
76 | self.groupBox = QtWidgets.QGroupBox(iconsDialog)
77 | self.groupBox.setObjectName("groupBox")
78 | self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox)
79 | self.gridLayout_4.setObjectName("gridLayout_4")
80 | self.label_3 = QtWidgets.QLabel(self.groupBox)
81 | self.label_3.setObjectName("label_3")
82 | self.gridLayout_4.addWidget(self.label_3, 0, 0, 1, 1)
83 | self.spinBoxS3d = QtWidgets.QSpinBox(self.groupBox)
84 | self.spinBoxS3d.setMaximum(1000)
85 | self.spinBoxS3d.setSingleStep(10)
86 | self.spinBoxS3d.setObjectName("spinBoxS3d")
87 | self.gridLayout_4.addWidget(self.spinBoxS3d, 0, 1, 1, 1)
88 | self.spinBoxS3d.setValue(iconSet.S3d)
89 | self.gridLayout.addWidget(self.groupBox, 2, 0, 1, 1)
90 |
91 | self.retranslateUi(iconsDialog)
92 | self.buttonBox.accepted.connect(iconsDialog.accept)
93 | self.buttonBox.rejected.connect(iconsDialog.reject)
94 | QtCore.QMetaObject.connectSlotsByName(iconsDialog)
95 |
96 | def retranslateUi(self, iconsDialog):
97 | iconsDialog.setWindowTitle(_translate("iconsDialog", "Icon settings", None))
98 | self.groupBoxCanvas.setTitle(_translate("iconsDialog", "GCP in Monoplotter", None))
99 | self.label.setText(_translate("iconsDialog", "Size of Icons", None))
100 | self.colorMButton.setText(_translate("iconsDialog", "Color", None))
101 | self.label_2.setText(_translate("iconsDialog", "Width of Lines", None))
102 | self.groupBoxMonoplot.setTitle(_translate("iconsDialog", "GCP in Canvas", None))
103 | self.colorCButton.setText(_translate("iconsDialog", "Color", None))
104 | self.label_5.setText(_translate("iconsDialog", "Size of Icons", None))
105 | self.label_6.setText(_translate("iconsDialog", "Width of Lines", None))
106 | self.groupBox.setTitle(_translate("iconsDialog", "GCP in 3D viewer", None))
107 | self.label_3.setText(_translate("iconsDialog", "Size of cube", None))
108 |
109 |
110 |
111 |
112 | if __name__ == "__main__":
113 | import sys
114 | app = QtWidgets.QApplication(sys.argv)
115 | iconsDialog = QtWidgets.QDialog()
116 | ui = Ui_iconsDialog()
117 | ui.setupUi(iconsDialog)
118 | iconsDialog.show()
119 | sys.exit(app.exec_())
120 |
--------------------------------------------------------------------------------
/Pic2Map/ui_help_ini.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Form implementation generated from reading ui file 'U:\pic2map-master\pic2map-master\Pic2Map\ui\ui_help_ini.ui'
4 | #
5 | # Created by: PyQt5 UI code generator 5.12.2
6 | #
7 | # WARNING! All changes made in this file will be lost!
8 |
9 | from PyQt5 import QtCore, QtGui, QtWidgets
10 |
11 |
12 | class Ui_Dialog(object):
13 | def setupUi(self, Dialog):
14 | Dialog.setObjectName("Dialog")
15 | Dialog.resize(490, 240)
16 | self.textBrowser = QtWidgets.QTextBrowser(Dialog)
17 | self.textBrowser.setGeometry(QtCore.QRect(0, 0, 491, 251))
18 | self.textBrowser.setObjectName("textBrowser")
19 |
20 | self.retranslateUi(Dialog)
21 | QtCore.QMetaObject.connectSlotsByName(Dialog)
22 |
23 | def retranslateUi(self, Dialog):
24 | _translate = QtCore.QCoreApplication.translate
25 | Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
26 | self.textBrowser.setHtml(_translate("Dialog", "\n"
27 | " \n"
30 | "GCP approach:
\n"
31 | "We make use standards algorithm in computer vision for estimation of the pose. Points in the picture have to be linked to coordinates in world (or local) coordinate system.
\n"
32 | "Direct Linear Transform (DLT) algorithm is used for estimation of the position. Several parameters can be fixed trough a least square refinement of the DLT.
\n"
33 | "Advantages:
\n"
34 | "- A mathematical expression of the pose estimation problem is used and the result is best in a mathematical sense.
\n"
35 | "- A high precision can be achieved
\n"
36 | "- Some known parameter can be fixed
\n"
37 | "Disadvantages:
\n"
38 | "- Precision is related to the number of correspondences
\n"
39 | "- Precision is related to the quality of correspondences
\n"
40 | "- The result can be completely out of sense if the correspondences are wrong or insufficient
\n"
41 | "
\n"
42 | "Virtual 3D approach:
\n"
43 | "We make use of the ability of users to estimate position, orientation as well as the focal of the camera. The pose estimation is done empirically. The camera travel in the world until the precision of the calking is enough for application purposes.
\n"
44 | "Advantages:
\n"
45 | "- An acceptable level of precision can be achieved quite easily.
\n"
46 | "- The method is simple and understandable by everybody
\n"
47 | "Disadvantages:
\n"
48 | "- The pose estimation is not "best" in a mathematical sense
\n"
49 | "- The estimation of several parameters is not always straightforward
\n"
50 | "- A high level of precision cannot be easily achieved
\n"
51 | "
"))
52 |
53 |
54 |
55 |
56 | if __name__ == "__main__":
57 | import sys
58 | app = QtWidgets.QApplication(sys.argv)
59 | Dialog = QtWidgets.QDialog()
60 | ui = Ui_Dialog()
61 | ui.setupUi(Dialog)
62 | Dialog.show()
63 | sys.exit(app.exec_())
64 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_exif2.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Exif2
4 |
5 |
6 |
7 | 0
8 | 0
9 | 484
10 | 587
11 |
12 |
13 |
14 | Dialog
15 |
16 |
17 |
18 |
19 | 390
20 | 540
21 | 75
22 | 23
23 |
24 |
25 |
26 | Qt::Horizontal
27 |
28 |
29 | QDialogButtonBox::Ok
30 |
31 |
32 |
33 |
34 |
35 | 9
36 | 9
37 | 461
38 | 301
39 |
40 |
41 |
42 |
43 |
44 |
45 | 10
46 | 320
47 | 461
48 | 211
49 |
50 |
51 |
52 | Focal
53 |
54 |
55 | -
56 |
57 |
58 | -
59 |
60 |
61 |
62 | 0
63 | 0
64 |
65 |
66 |
67 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
68 | <html><head><meta name="qrichtext" content="1" /><style type="text/css">
69 | p, li { white-space: pre-wrap; }
70 | </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
71 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Part of the focal information is found in the EXIF File. You need to enter the size of the sensor diagonal in [mm]. </span></p>
72 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p>
73 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">1. Check the website http://www.digicamdb.com/</span></p>
74 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">2. Find the diagonal length in [mm] of your sensor</span></p>
75 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">3. Enter it in the line below</span></p>
76 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">4. Read the focal length on the right down line and use it in the pose estimation</span></p></body></html>
77 |
78 |
79 |
80 | -
81 |
82 |
83 |
84 | 0
85 | 0
86 |
87 |
88 |
89 | Get Focal
90 |
91 |
92 |
93 | -
94 |
95 |
96 | Diagonal Length of Sensor [mm]
97 |
98 |
99 |
100 | -
101 |
102 |
103 | Focal [pixel unit]
104 |
105 |
106 |
107 | -
108 |
109 |
110 | true
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 | 20
120 | 540
121 | 111
122 | 23
123 |
124 |
125 |
126 | Import Coordinate
127 |
128 |
129 |
130 |
131 | false
132 |
133 |
134 |
135 | 150
136 | 540
137 | 111
138 | 23
139 |
140 |
141 |
142 | Save Coordinate
143 |
144 |
145 |
146 |
147 |
148 |
149 | buttonBox
150 | accepted()
151 | Exif2
152 | accept()
153 |
154 |
155 | 248
156 | 254
157 |
158 |
159 | 157
160 | 274
161 |
162 |
163 |
164 |
165 | buttonBox
166 | rejected()
167 | Exif2
168 | reject()
169 |
170 |
171 | 316
172 | 260
173 |
174 |
175 | 286
176 | 274
177 |
178 |
179 |
180 |
181 |
182 |
--------------------------------------------------------------------------------
/Pic2Map/reportDialog.py:
--------------------------------------------------------------------------------
1 |
2 | """
3 |
4 | /***************************************************************************
5 | * *
6 | * This program is free software; you can redistribute it and/or modify *
7 | * it under the terms of the GNU General Public License as published by *
8 | * the Free Software Foundation; either version 2 of the License, or *
9 | * (at your option) any later version. *
10 | * *
11 | ***************************************************************************/
12 | """
13 |
14 |
15 |
16 | from builtins import zip
17 | from builtins import str
18 | from builtins import range
19 | from PyQt5 import QtGui, QtWidgets, QtCore
20 | from PyQt5.QtGui import *
21 | from PyQt5.QtCore import *
22 | from PyQt5.QtWidgets import *
23 | from .ui_reportGCP import Ui_ReportGCP
24 | from numpy import mean, min, max, std, zeros, sqrt, pi
25 | # create the dialog for zoom to point
26 |
27 | class ReportDialog(QtWidgets.QDialog):
28 | #This class create a report about errors in projection and back-projection
29 | #It is also here that points are considered behind a hill or not.
30 | #More generally, if you want to add some functions for checking consistency of
31 | #projections or back projections, you can do it here.
32 | #
33 | #When the Pose dialog window is closed, the errors
34 | def __init__(self, model, Qxx, paramBool, paramList, pathToData, xyzUnProjected):
35 | QtWidgets.QDialog.__init__(self)
36 | self.setWindowFlag(Qt.WindowStaysOnTopHint)
37 | self.setWindowModality(Qt.ApplicationModal)
38 | self.inconsistent = False
39 | self.ui = Ui_ReportGCP()
40 | self.ui.setupUi(self)
41 | #self.center()
42 | self.pathToData = pathToData
43 | self.xyzUnProjected = xyzUnProjected
44 | self.totalPointsOnHill = 0
45 | paramList[3] = (paramList[3]*180)/pi
46 | paramList[4] = (paramList[4]*180)/pi
47 | paramList[5] = (paramList[5]*180)/pi
48 | self.model = model
49 | rowCount = model.rowCount()
50 | errorsPixels = zeros((rowCount,1))
51 | errors3D = []
52 | n_outOfHorizon = 0
53 | for row in range(0,rowCount):
54 | if model.checkValid(row)==0:
55 | continue
56 | index = model.index(row, 6)
57 | error3D = model.data(index)
58 | if error3D > 0:
59 | errors3D.append(error3D)
60 | else:
61 | n_outOfHorizon += 1
62 | index = model.index(row,7)
63 | errorsPixels[row] = model.data(index)
64 | if len(errors3D)>0:
65 | text = ''
66 | text += 'Projections errors:'
67 |
68 | text += '\n mean: ' + str(round(mean(errorsPixels),2)) + ' [pixel]'
69 | text += '\n min: ' + str(min(errorsPixels)) + ' [pixel]'
70 | text += '\n max: ' + str(max(errorsPixels)) + ' [pixel]'
71 | text += '\n std: ' + str(round(std(errorsPixels),2)) + ' [pixel]'
72 | text += '\n\n3D reprojections errors:'
73 | text += '\n mean: ' + str(round(mean(errors3D),2)) + ' [m]'
74 | text += '\n min: ' + str(min(errors3D)) + ' [m]'
75 | text += '\n max: ' + str(max(errors3D)) + ' [m]'
76 | text += '\n std: ' + str(round(std(errors3D),2)) + ' [m]'
77 | """
78 | text += '\n' + str(round(mean(errorsPixels),2))
79 | text += '\n' + str(min(errorsPixels))
80 | text += '\n' + str(max(errorsPixels))
81 | text += '\n' + str(round(std(errorsPixels),2))
82 | text += '\n' + str(round(mean(errors3D),2))
83 | text += '\n' + str(min(errors3D))
84 | text += '\n' + str(max(errors3D))
85 | text += '\n' + str(round(std(errors3D),2))
86 | """
87 | text += '\n\nPose estimation parameters:'
88 | paramText = ['X position','Y Position','Z Position','Tilt [°]','Heading [°]', 'Swing [°]', 'Focal [pixel]']
89 | for name, bool, value, prec in zip(paramText, paramBool, paramList, Qxx):
90 | if bool:
91 | text += '\n'+ name + ', Free :' + ' ' + str(round(value,6)) + '\n(Precision : '+ str(round(prec,6)) + ")"
92 | else:
93 | text += '\n'+ name + ', Fixed: ' + ' ' + str(round(value,6))
94 |
95 | self.ui.reportBrowser.setText(text)
96 | self.ui.pushButton.pressed.connect(self.saveReport)
97 | test = self.isBehindHill(paramList,errors3D)
98 | if test:
99 | QMessageBox.warning(self, "Reprojection - Warning",
100 | "%i GCP seems to be not visible from the camera location! The computed position could be behind relief or within the ground." % self.totalPointsOnHill)
101 | else:
102 | QMessageBox.warning(self, "Reprojection - Warning",
103 | "inconsistent pose, consider to provide apriori values")
104 | self.inconsistent = True
105 |
106 | def center(self):
107 | qr = self.frameGeometry()
108 | cp = QtWidgets.QDesktopWidget().availableGeometry().center()
109 | qr.moveCenter(cp)
110 | self.move(qr.topLeft())
111 |
112 | def saveReport(self):
113 | #Save a small text file which contain the same information as the dialog.
114 | path = self.pathToData + '/report.txt'
115 | fSaveName = QFileDialog.getSaveFileName(self, 'Save your report as...',\
116 | path,"File (*.txt)")[0]
117 | f = open(fSaveName, 'w')
118 | data = self.ui.reportBrowser.toPlainText()
119 | f.write(data)
120 | f.close()
121 | self.close()
122 |
123 | def isBehindHill(self, paramList,errors3D):
124 | # For checking if a point stand behind a hill, we compare the error
125 | # with the distance between camera position and back-projection
126 | x0 = -paramList[0]
127 | y0 = paramList[1]
128 |
129 | totalPointsOnHill = 0
130 | for xyz,error in zip(self.xyzUnProjected,errors3D):
131 | x = xyz[0]
132 | y = xyz[2]
133 | planimetricDistanceToCameraPosition = sqrt((x-x0)**2+(y-y0)**2)
134 |
135 | #If the error is bigger than the distance between camera position and
136 | # back-projection, the point is considered to be behind a hill.
137 | if planimetricDistanceToCameraPosition < error:
138 | totalPointsOnHill += 1
139 | if totalPointsOnHill == 0:
140 | return False
141 | else:
142 | self.totalPointsOnHill = totalPointsOnHill
143 | return True
144 |
145 |
146 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_disprast.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | disprast
4 |
5 |
6 |
7 | 0
8 | 0
9 | 766
10 | 836
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 | true
18 |
19 |
20 |
21 |
22 | 0
23 | 0
24 |
25 |
26 |
27 | true
28 |
29 |
30 | -
31 |
32 |
33 |
34 | 0
35 | 0
36 |
37 |
38 |
39 |
40 |
41 |
42 |
76 |
77 |
78 |
79 | false
80 |
81 |
82 | 8
83 |
84 |
85 |
86 | -
87 |
88 |
89 |
90 | 0
91 | 0
92 |
93 |
94 |
95 | false
96 |
97 |
98 | true
99 |
100 |
101 | Qt::ImhDigitsOnly|Qt::ImhFormattedNumbersOnly|Qt::ImhUrlCharactersOnly
102 |
103 |
104 | QFrame::Box
105 |
106 |
107 | QFrame::Sunken
108 |
109 |
110 | 2
111 |
112 |
113 | Qt::ScrollBarAlwaysOn
114 |
115 |
116 | Qt::ScrollBarAsNeeded
117 |
118 |
119 | true
120 |
121 |
122 | QAbstractItemView::AllEditTriggers
123 |
124 |
125 | true
126 |
127 |
128 | false
129 |
130 |
131 | false
132 |
133 |
134 | Qt::CopyAction
135 |
136 |
137 | true
138 |
139 |
140 | QAbstractItemView::SingleSelection
141 |
142 |
143 | QAbstractItemView::SelectColumns
144 |
145 |
146 | Qt::ElideNone
147 |
148 |
149 | true
150 |
151 |
152 | Qt::SolidLine
153 |
154 |
155 | false
156 |
157 |
158 | true
159 |
160 |
161 | false
162 |
163 |
164 | true
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 | toolBar
174 |
175 |
176 | TopToolBarArea
177 |
178 |
179 | false
180 |
181 |
182 |
183 |
184 | Option1.1
185 |
186 |
187 |
188 |
189 | Option1.2
190 |
191 |
192 |
193 |
194 | Option1.3.1
195 |
196 |
197 |
198 |
199 | Option1.3.2
200 |
201 |
202 |
203 |
204 | Option2.1
205 |
206 |
207 |
208 |
209 |
210 |
211 |
--------------------------------------------------------------------------------
/Pic2Map/ui/ui_help_ini.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | Dialog
4 |
5 |
6 |
7 | 0
8 | 0
9 | 490
10 | 240
11 |
12 |
13 |
14 | Dialog
15 |
16 |
17 |
18 |
19 | 0
20 | 0
21 | 491
22 | 251
23 |
24 |
25 |
26 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
27 | <html><head><meta name="qrichtext" content="1" /><style type="text/css">
28 | p, li { white-space: pre-wrap; }
29 | </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
30 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">GCP approach:</span></p>
31 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">We make use standards algorithm in computer vision for estimation of the pose. Points in the picture have to be linked to coordinates in world (or local) coordinate system.</span></p>
32 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Direct Linear Transform (DLT) algorithm is used for estimation of the position. Several parameters can be fixed trough a least square refinement of the DLT. </span></p>
33 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; text-decoration: underline;">Advantages:</span></p>
34 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- A mathematical expression of the pose estimation problem is used and the result is best in a mathematical sense.</span></p>
35 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- A high precision can be achieved</span></p>
36 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- Some known parameter can be fixed</span></p>
37 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; text-decoration: underline;">Disadvantages:</span></p>
38 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- Precision is related to the number of correspondences</span></p>
39 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- Precision is related to the quality of correspondences</span></p>
40 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- The result can be completely out of sense if the correspondences are wrong or insufficient</span></p>
41 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p>
42 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Virtual 3D approach:</span></p>
43 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">We make use of the ability of users to estimate position, orientation as well as the focal of the camera. The pose estimation is done empirically. The camera travel in the world until the precision of the calking is enough for application purposes.</span></p>
44 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; text-decoration: underline;">Advantages:</span></p>
45 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- An acceptable level of precision can be achieved quite easily. </span></p>
46 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; text-decoration: underline;">- The method is simple and understandable by everybody</span></p>
47 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; text-decoration: underline;">Disadvantages:</span></p>
48 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- The pose estimation is not "best" in a mathematical sense</span></p>
49 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- The estimation of several parameters is not always straightforward</span></p>
50 | <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">- A high level of precision cannot be easily achieved</span></p>
51 | <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html>
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/Pic2Map/initialization.py:
--------------------------------------------------------------------------------
1 |
2 | """
3 | /***************************************************************************
4 | * *
5 | * This program is free software; you can redistribute it and/or modify *
6 | * it under the terms of the GNU General Public License as published by *
7 | * the Free Software Foundation; either version 2 of the License, or *
8 | * (at your option) any later version. *
9 | * *
10 | ***************************************************************************/
11 | """
12 |
13 | from builtins import str
14 | import qgis.core
15 | from qgis.core import *
16 | from qgis.gui import *
17 | from PyQt5 import QtCore, QtGui, QtWidgets
18 | from PyQt5.QtGui import *
19 | from PyQt5.QtWidgets import *
20 | from PyQt5.QtCore import *
21 | from .ui_disp_ini import Ui_Dialog
22 | import webbrowser
23 | import os, tempfile
24 | from osgeo import gdal
25 |
26 | class Initialization_dialog(QtWidgets.QDialog):
27 | def __init__(self, iface):
28 | QtWidgets.QDialog.__init__(self)
29 | # super(Initialization_dialog, self).__init__(iface.mainWindow())
30 | self.ui = Ui_Dialog()
31 | self.ui.setupUi(self)
32 | #self.center()
33 | self.iface = iface
34 | self.ui.lineEdit.setText("")
35 | self.ui.lineEditDEM.setText("")
36 | #self.ui.checkBox.setChecked(False)
37 | #self.ui.lineEdit_2.setText("")
38 | self.activeLayer = False
39 | self.filePathSave = os.path.dirname(os.path.abspath(__file__)) + "/config.txt"
40 |
41 | openFile = self.ui.toolButton
42 | openFile.clicked.connect(self.showDialog)
43 | openFile = self.ui.toolButtonDEM
44 | openFile.clicked.connect(self.showDialogDEM)
45 | self.ui.pushButtonDEM.clicked.connect(self.getActiveLayer)
46 | self.ui.pushButtonCurrent.clicked.connect(self.getCurrentView)
47 |
48 | self.ui.buttonBox.helpRequested.connect(self.helpWindow)
49 | #self.ui.checkBox.stateChanged[int].connect(self.orthoActivate)
50 |
51 | self.ui.lineEditDEM.dropped.connect(self.dropEvent)
52 | #self.openOrtho = self.ui.toolButton_2
53 | #self.openOrtho.clicked.connect(self.showDialogOrtho)
54 | #self.ui.lineEdit_2.setReadOnly(True)
55 |
56 | try :
57 | projectName = QgsProject.instance().fileName()
58 | f = open(self.filePathSave, "r")
59 | oldpath = f.readline()
60 | if oldpath :
61 | self.currentPath = oldpath
62 | elif projectName :
63 | self.currentPath = os.path.dirname(projectName)
64 | else :
65 | self.currentPath = '/home'
66 | f.close()
67 | except :
68 | self.currentPath = '/home'
69 |
70 | self.setAcceptDrops(True)
71 |
72 | def dragEnterEvent(self, event):
73 | event.accept()
74 |
75 | def dropEvent(self, event):
76 | lineEdit = self.childAt(event.pos().x(),event.pos().y())
77 |
78 | if lineEdit.metaObject().className() == "dropedit" :
79 | fileURL = event.mimeData().urls()[0].toString()
80 | try :
81 | fileName = fileURL.split('file:///')[1]
82 | except :
83 | fileName = fileURL.split('file:')[1]
84 | lineEdit.setText(fileName)
85 |
86 | """def orthoActivate(self, state):
87 | if state == 2:
88 | self.openOrtho.setEnabled(True)
89 | if state == 0:
90 | self.openOrtho.setEnabled(False)
91 | self.ui.lineEdit_2.setText('')"""
92 |
93 |
94 | def helpWindow(self):
95 | name = os.path.dirname(os.path.abspath(__file__))
96 | url = name + "/help/build/html/index.html"
97 | url.replace("\\","/")
98 | webbrowser.open(url,new=2)
99 |
100 | def center(self):
101 | qr = self.frameGeometry()
102 | cp = QtWidgets.QDesktopWidget().availableGeometry().center()
103 | qr.moveCenter(cp)
104 | self.move(qr.topLeft())
105 |
106 | """def showDialogOrtho(self):
107 | fname = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file',self.currentPath)[0]
108 | self.ui.lineEdit_2.setText(fname)
109 | if fname:
110 | self.currentPath = fname.rsplit("/",1)[0]"""
111 |
112 | def showDialog(self):
113 | fname = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file',self.currentPath)[0]
114 | if fname:
115 | self.ui.lineEdit.setText(fname)
116 | self.currentPath = fname.rsplit("/",1)[0]
117 | f = open(self.filePathSave, "w+")
118 | f.write(self.currentPath)
119 | f.close()
120 |
121 | def showDialogDEM(self):
122 | fname = QtWidgets.QFileDialog.getOpenFileName(self, 'Open file',self.currentPath, "Images (*.tiff *.tif)")[0]
123 | if fname:
124 | self.activeLayer = False
125 | self.ui.lineEditDEM.setText(fname)
126 | self.currentPath = fname.rsplit("/",1)[0]
127 | f = open(self.filePathSave, "w+")
128 | f.write(self.currentPath)
129 | f.close()
130 |
131 | def getActiveLayer(self):
132 |
133 | if str(type(self.iface.activeLayer())) != "" :
134 | QMessageBox.warning(self, "Layer type invalid", "Please select a Qgs Raster Layer")
135 |
136 | else:
137 | fname = self.iface.activeLayer().dataProvider().dataSourceUri()
138 | self.ui.lineEditDEM.setText(fname)
139 | self.currentPath = fname.rsplit("/",1)[0]
140 | f = open(self.filePathSave, "w+")
141 | f.write(self.currentPath)
142 | f.close()
143 | self.activeLayer = True
144 |
145 | def getCurrentView(self):
146 | rect = self.iface.mapCanvas().extent()
147 | proj = [rect.xMinimum(), rect.yMaximum(), rect.xMaximum(), rect.yMinimum()]
148 | if str(type(self.iface.activeLayer())) != "" :
149 | QMessageBox.warning(self, "Layer type invalid", "Please select a Qgs Raster Layer")
150 |
151 | else:
152 | fname = self.iface.activeLayer().dataProvider().dataSourceUri()
153 | self.currentPath = fname.rsplit("/",1)[0]
154 | path = tempfile.gettempdir().replace("\\","/")
155 | outName = path + '/' + (fname.rsplit("/",1)[1]).split(".")[0] + "_CropToView.vrt"
156 | f = open(self.filePathSave, "w+")
157 | f.write(self.currentPath)
158 | f.close()
159 |
160 | activeLayer = self.iface.activeLayer()
161 | self.iface.layerTreeView().layerTreeModel().rootGroup().findLayer(activeLayer).setItemVisibilityChecked(False)
162 |
163 | gdal.Translate(outName, fname, projWin=proj)
164 |
165 | self.ui.lineEditDEM.setText(outName)
166 | self.iface.addRasterLayer(outName)
167 | self.activeLayer = True
168 |
169 |
170 |
--------------------------------------------------------------------------------