easyidp 2.0.0.dev4__tar.gz → 2.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. easyidp-2.0.1/.gitattributes +2 -0
  2. easyidp-2.0.1/.github/workflows/pytest.yml +38 -0
  3. easyidp-2.0.1/.github/workflows/uv-publish.yml +34 -0
  4. easyidp-2.0.1/.gitignore +18 -0
  5. easyidp-2.0.1/.python-version +1 -0
  6. easyidp-2.0.1/.readthedocs.yaml +29 -0
  7. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/PKG-INFO +129 -116
  8. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/README.md +90 -87
  9. easyidp-2.0.1/docs/Makefile +20 -0
  10. easyidp-2.0.1/docs/_static/anime.pptx +0 -0
  11. easyidp-2.0.1/docs/_static/images/data/2017_tanashi_lotus.png +0 -0
  12. easyidp-2.0.1/docs/_static/images/data/2022_florida_forestbirds.png +0 -0
  13. easyidp-2.0.1/docs/_static/images/geotiff_transparency/crop_png.png +0 -0
  14. easyidp-2.0.1/docs/_static/images/geotiff_transparency/ref_rgb.png +0 -0
  15. easyidp-2.0.1/docs/_static/images/header_v2.0.png +0 -0
  16. easyidp-2.0.1/docs/_static/images/jupyter/backward.png +0 -0
  17. easyidp-2.0.1/docs/_static/images/jupyter/crop.png +0 -0
  18. easyidp-2.0.1/docs/_static/images/jupyter/forward.png +0 -0
  19. easyidp-2.0.1/docs/_static/images/jupyter/shp_icon.png +0 -0
  20. easyidp-2.0.1/docs/_static/images/jupyter/zval.png +0 -0
  21. easyidp-2.0.1/docs/_static/images/metashape_multi_chunks.png +0 -0
  22. easyidp-2.0.1/docs/_static/images/metashape_single_chunk.png +0 -0
  23. easyidp-2.0.1/docs/_static/images/python_api/back2raw_ignore_todo.png +0 -0
  24. easyidp-2.0.1/docs/_static/images/python_api/back2raw_save.png +0 -0
  25. easyidp-2.0.1/docs/_static/images/python_api/back2raw_sort.png +0 -0
  26. easyidp-2.0.1/docs/_static/images/python_api/percentile_mean.png +0 -0
  27. easyidp-2.0.1/docs/_static/images/python_api/roi_crop_mode.png +0 -0
  28. easyidp-2.0.1/docs/_static/images/python_api/save_geotiff_offset.png +0 -0
  29. easyidp-2.0.1/docs/_static/images/roi_marking/cc_mark_txt.gif +0 -0
  30. easyidp-2.0.1/docs/_static/images/roi_marking/gimp_coord.jpg +0 -0
  31. easyidp-2.0.1/docs/_static/images/roi_marking/labelme_cancel_save_img_data.png +0 -0
  32. easyidp-2.0.1/docs/_static/images/roi_marking/labelme_demo_img.JPG +0 -0
  33. easyidp-2.0.1/docs/_static/images/roi_marking/labelme_demo_preview.png +0 -0
  34. easyidp-2.0.1/docs/_static/images/roi_marking/labelme_mark.gif +0 -0
  35. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_activate_toolbar.png +0 -0
  36. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_add_roi.gif +0 -0
  37. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_adv_roi.gif +0 -0
  38. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_init_shp.gif +0 -0
  39. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_load_map.png +0 -0
  40. easyidp-2.0.1/docs/_static/images/roi_marking/qgis_mv_roi.gif +0 -0
  41. easyidp-2.0.1/docs/_static/images/roi_types.png +0 -0
  42. easyidp-2.0.1/docs/_static/images/visualize/draw_backward_one_roi.png +0 -0
  43. easyidp-2.0.1/docs/_static/images/visualize/p4d_back2raw_single_view.png +0 -0
  44. easyidp-2.0.1/docs/_static/images/visualize/p4d_back2raw_single_view2.png +0 -0
  45. easyidp-2.0.1/docs/_static/jsons/roi_marking/labelme_demo_img.json +34 -0
  46. easyidp-2.0.1/docs/backgrounds/geotiff_transparency.rst +90 -0
  47. easyidp-2.0.1/docs/backgrounds/roi_marking.rst +253 -0
  48. easyidp-2.0.1/docs/backgrounds/virtualenv.rst +116 -0
  49. easyidp-2.0.1/docs/conf.py +94 -0
  50. easyidp-2.0.1/docs/contribute.rst +304 -0
  51. easyidp-2.0.1/docs/index.rst +442 -0
  52. easyidp-2.0.1/docs/install.rst +125 -0
  53. easyidp-2.0.1/docs/jupyter/backward_projection.ipynb +761 -0
  54. easyidp-2.0.1/docs/jupyter/crop_outputs.ipynb +521 -0
  55. easyidp-2.0.1/docs/jupyter/forward_projection.ipynb +1785 -0
  56. easyidp-2.0.1/docs/jupyter/get_z_from_dsm.ipynb +97 -0
  57. easyidp-2.0.1/docs/jupyter/load_roi.ipynb +1156 -0
  58. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/backgrounds.po +472 -0
  59. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/contribute.po +260 -0
  60. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/index.po +581 -0
  61. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/install.po +163 -0
  62. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/jupyter.po +833 -0
  63. easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/python_api.po +7326 -0
  64. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/backgrounds.po +496 -0
  65. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/contribute.po +277 -0
  66. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/index.po +528 -0
  67. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/install.po +161 -0
  68. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/jupyter.po +735 -0
  69. easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/python_api.po +6680 -0
  70. easyidp-2.0.1/docs/make.bat +35 -0
  71. easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.imarray_crop.rst +6 -0
  72. easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.poly2mask.rst +6 -0
  73. easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.rgb2gray.rst +6 -0
  74. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.EasyidpDataSet.rst +25 -0
  75. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.ForestBirds.rst +33 -0
  76. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.Lotus.rst +33 -0
  77. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.TestData.rst +33 -0
  78. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.download_all.rst +6 -0
  79. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.show_data_dir.rst +6 -0
  80. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.url_checker.rst +6 -0
  81. easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.user_data_dir.rst +6 -0
  82. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.GeoTiff.rst +47 -0
  83. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.geo2pixel.rst +6 -0
  84. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.get_header.rst +6 -0
  85. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.get_imarray.rst +6 -0
  86. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.pixel2geo.rst +6 -0
  87. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.point_query.rst +6 -0
  88. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.save_geotiff.rst +6 -0
  89. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.tifffile_crop.rst +6 -0
  90. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.convert_proj.rst +6 -0
  91. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.convert_proj3d.rst +6 -0
  92. easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.is_single_point.rst +6 -0
  93. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.dict2json.rst +6 -0
  94. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.read_geojson.rst +6 -0
  95. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.read_json.rst +6 -0
  96. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.save_json.rst +6 -0
  97. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.show_geojson_fields.rst +6 -0
  98. easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.write_json.rst +6 -0
  99. easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.Metashape.rst +49 -0
  100. easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.apply_transform_matrix.rst +6 -0
  101. easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.read_chunk_zip.rst +6 -0
  102. easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.read_project_zip.rst +6 -0
  103. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.Pix4D.rst +47 -0
  104. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.parse_p4d_param_folder.rst +6 -0
  105. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.parse_p4d_project.rst +6 -0
  106. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_cam_ssk.rst +6 -0
  107. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_campos_geo.rst +6 -0
  108. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_ccp.rst +6 -0
  109. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_cicp.rst +6 -0
  110. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_pmat.rst +6 -0
  111. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_xyz.rst +6 -0
  112. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.PointCloud.rst +44 -0
  113. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_las.rst +6 -0
  114. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_laz.rst +6 -0
  115. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_ply.rst +6 -0
  116. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_las.rst +6 -0
  117. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_laz.rst +6 -0
  118. easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_ply.rst +6 -0
  119. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Calibration.rst +48 -0
  120. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst +32 -0
  121. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Photo.rst +39 -0
  122. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Recons.rst +36 -0
  123. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Sensor.rst +40 -0
  124. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.save_back2raw_json_and_png.rst +6 -0
  125. easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.sort_img_by_distance.rst +6 -0
  126. easyidp-2.0.1/docs/python_api/autodoc/easyidp.roi.read_cc_txt.rst +6 -0
  127. easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.read_proj.rst +6 -0
  128. easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.read_shp.rst +6 -0
  129. easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.show_shp_fields.rst +6 -0
  130. easyidp-2.0.1/docs/python_api/autodoc/easyidp.visualize.draw_backward_one_roi.rst +6 -0
  131. easyidp-2.0.1/docs/python_api/autodoc/easyidp.visualize.draw_polygon_on_img.rst +6 -0
  132. easyidp-2.0.1/docs/python_api/cvtools.rst +20 -0
  133. easyidp-2.0.1/docs/python_api/data.rst +95 -0
  134. easyidp-2.0.1/docs/python_api/geotiff.rst +36 -0
  135. easyidp-2.0.1/docs/python_api/geotools.rst +19 -0
  136. easyidp-2.0.1/docs/python_api/index.rst +49 -0
  137. easyidp-2.0.1/docs/python_api/json.rst +29 -0
  138. easyidp-2.0.1/docs/python_api/manualdoc/easyidp.roi.ROI.rst +37 -0
  139. easyidp-2.0.1/docs/python_api/metashape.rst +34 -0
  140. easyidp-2.0.1/docs/python_api/pix4d.rst +37 -0
  141. easyidp-2.0.1/docs/python_api/pointcloud.rst +36 -0
  142. easyidp-2.0.1/docs/python_api/reconstruct.rst +110 -0
  143. easyidp-2.0.1/docs/python_api/roi.rst +33 -0
  144. easyidp-2.0.1/docs/python_api/shp.rst +21 -0
  145. easyidp-2.0.1/docs/python_api/visualize.rst +17 -0
  146. easyidp-2.0.1/pyproject.toml +71 -0
  147. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/__init__.py +50 -5
  148. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/cvtools.py +322 -355
  149. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/data.py +889 -663
  150. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/geotiff.py +1742 -1718
  151. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/geotools.py +57 -16
  152. easyidp-2.0.1/src/easyidp/jsonfile.py +592 -0
  153. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/metashape.py +285 -50
  154. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/pix4d.py +12 -12
  155. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/pointcloud.py +1303 -1297
  156. easyidp-2.0.1/src/easyidp/py.typed +0 -0
  157. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/reconstruct.py +775 -766
  158. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/roi.py +97 -8
  159. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/shp.py +100 -41
  160. {easyidp-2.0.0.dev4 → easyidp-2.0.1/src}/easyidp/visualize.py +5 -5
  161. easyidp-2.0.1/tests/__init__.py +33 -0
  162. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_cvtools.py +272 -386
  163. easyidp-2.0.1/tests/test_data.py +205 -0
  164. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_geotiff.py +41 -11
  165. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_init_class_func.py +134 -120
  166. easyidp-2.0.1/tests/test_jsonfile.py +132 -0
  167. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_metashape.py +382 -17
  168. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_pix4d.py +24 -25
  169. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_pointcloud.py +3 -9
  170. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_reconstruct.py +328 -321
  171. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_roi.py +348 -326
  172. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_shp.py +81 -41
  173. {easyidp-2.0.0.dev4 → easyidp-2.0.1}/tests/test_visualize.py +26 -18
  174. easyidp-2.0.1/uv.lock +2312 -0
  175. easyidp-2.0.0.dev4/LICENSE +0 -21
  176. easyidp-2.0.0.dev4/easyidp/jsonfile.py +0 -273
  177. easyidp-2.0.0.dev4/easyidp.egg-info/PKG-INFO +0 -116
  178. easyidp-2.0.0.dev4/easyidp.egg-info/SOURCES.txt +0 -35
  179. easyidp-2.0.0.dev4/easyidp.egg-info/dependency_links.txt +0 -1
  180. easyidp-2.0.0.dev4/easyidp.egg-info/requires.txt +0 -31
  181. easyidp-2.0.0.dev4/easyidp.egg-info/top_level.txt +0 -2
  182. easyidp-2.0.0.dev4/setup.cfg +0 -7
  183. easyidp-2.0.0.dev4/setup.py +0 -64
  184. easyidp-2.0.0.dev4/tests/__init__.py +0 -16
  185. easyidp-2.0.0.dev4/tests/test_data.py +0 -39
  186. easyidp-2.0.0.dev4/tests/test_jsonfile.py +0 -40
@@ -0,0 +1,2 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
@@ -0,0 +1,38 @@
1
+ name: pytest
2
+
3
+ on:
4
+ push:
5
+ branches: [ v2.0 ]
6
+ pull_request:
7
+ branches: [ v2.0 ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ python-version: ["3.10", "3.11", "3.12"]
19
+
20
+ steps:
21
+ - uses: actions/checkout@v4
22
+
23
+ - name: Set up Python ${{ matrix.python-version }}
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: ${{ matrix.python-version }}
27
+
28
+ - name: Install project + test dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install -e . --group test
32
+
33
+ - name: Download TestData
34
+ run: |
35
+ python ./tests/__init__.py
36
+ - name: Run pytest
37
+ run: |
38
+ pytest -n auto
@@ -0,0 +1,34 @@
1
+ # copied and modified from: https://blog.ringsaturn.me/amp/posts/better-python-project-maintenance/
2
+ name: publish by uv
3
+
4
+ on:
5
+ push:
6
+ tags:
7
+ - "v*"
8
+
9
+ jobs:
10
+ pypi-publish:
11
+ name: upload release to PyPI
12
+ runs-on: ubuntu-latest
13
+ environment:
14
+ name: PyPI
15
+ url: https://pypi.org/p/easyidp
16
+ permissions:
17
+ id-token: write
18
+ env:
19
+ TRUSTED_PUBLISHING: always
20
+ steps:
21
+ - name: Checkout Actions
22
+ uses: actions/checkout@v4
23
+ - name: Install uv
24
+ uses: astral-sh/setup-uv@v6
25
+ with:
26
+ enable-cache: true
27
+ cache-dependency-glob: |
28
+ **/pyproject.toml
29
+ - name: nv venv create
30
+ run: uv sync
31
+ - name: uv build
32
+ run: uv build
33
+ - name: uv publish
34
+ run: uv publish
@@ -0,0 +1,18 @@
1
+ __pycache__
2
+ d
3
+ *.mo
4
+ *.DS_Store
5
+ .archive/*
6
+ .idea/*
7
+ .ipynb_checkpoints/*
8
+ .pytest_cache/*
9
+ .vscode/*
10
+ _install.md
11
+ build/*
12
+ docs/_build/*
13
+ docs/jupyter/.ipynb_checkpoints/*
14
+ dist/*
15
+ easyidp.egg-info/*
16
+ dev.notes/*
17
+ tests/out/*
18
+ .pypirc
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1,29 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the version of Python and other tools you might need
9
+ build:
10
+ os: ubuntu-20.04
11
+ tools:
12
+ python: "3.10"
13
+ # You can also specify other tool versions:
14
+ # nodejs: "16"
15
+ # rust: "1.55"
16
+ # golang: "1.17"
17
+ jobs:
18
+ install:
19
+ - python -m pip install --upgrade pip
20
+ - pip install .
21
+ - pip install --group docs
22
+
23
+ # Build documentation in the docs/ directory with Sphinx
24
+ sphinx:
25
+ configuration: docs/conf.py
26
+
27
+ # If using Sphinx, optionally build your docs in additional formats such as PDF
28
+ # formats:
29
+ # - pdf
@@ -1,116 +1,129 @@
1
- Metadata-Version: 2.1
2
- Name: easyidp
3
- Version: 2.0.0.dev4
4
- Summary: A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications
5
- Home-page: https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP
6
- Author: Haozhou Wang
7
- Author-email: howcanoewang@gmail.com
8
- Project-URL: Documentation, https://easyidp.readthedocs.io/en/latest/
9
- Project-URL: Source, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP
10
- Project-URL: Tracker, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/issues
11
- Project-URL: forum, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions
12
- Classifier: Development Status :: 4 - Beta
13
- Classifier: Intended Audience :: Science/Research
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Topic :: Scientific/Engineering :: GIS
17
- Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.7
19
- Classifier: Programming Language :: Python :: 3.8
20
- Classifier: Programming Language :: Python :: 3.9
21
- Classifier: Programming Language :: Python :: 3.10
22
- Classifier: Programming Language :: Python :: 3 :: Only
23
- Requires-Python: >=3.6, <4
24
- Description-Content-Type: text/markdown
25
- Provides-Extra: docs
26
- Provides-Extra: test
27
- Provides-Extra: build
28
- License-File: LICENSE
29
-
30
- <div align="center">
31
-
32
- <p>
33
- <!-- <a align="left" href="https://ultralytics.com/yolov5" target="_blank"> -->
34
- <img width="850" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/raw/v2.0/docs/_static/images/header_v2.0.png"></a>
35
- </p>
36
-
37
- <p align="center">
38
- <img alt="GitHub code size in bytes" src="https://img.shields.io/tokei/lines/github/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
39
- <img alt="GitHub" src="https://img.shields.io/github/license/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
40
- <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
41
- <img alt="GitHub Downloads" src="https://img.shields.io/github/downloads/UTokyo-FieldPhenomics-Lab/EasyIDP/total?label=github%20downloads&style=plastic">
42
- <img alt="GitHub Downloads" src="https://img.shields.io/pypi/dm/easyidp?color=%233775A9&label=pypi%20downloads&style=plastic">
43
- </p>
44
-
45
-
46
-
47
- </div>
48
-
49
- EasyIDP (Easy Intermediate Data Processor), A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications. It provides the following functions:
50
-
51
- 1. Backward Projection ROI to original images (`Backward Projector`).
52
- 2. Crop ROI on GeoTiff Maps (DOM & DSM) and Point Cloud (`ROI Cropper`).
53
- 3. Save cropped results to corresponding files (`ROI Saver`).
54
-
55
- This project tried to use packges based on pure-python, instead of installing some heavy packages (Open3D, OpenCV) and hard to install packages (GDAL dependices) for one or two individual functions. This may cause efficiency loss and differences in coding habit.
56
-
57
- ## <div align="center">Documentation</div>
58
-
59
- Please check [Official Documents](https://easyidp.readthedocs.io/en/latest/) ( [中文](https://easyidp.readthedocs.io/zh_CN/latest/) | [日本語(翻訳募集)](https://easyidp.readthedocs.io/ja/latest/) ) for full documentations. And please also use the [Github Discussion](https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions) when you meet any problems.
60
-
61
-
62
- ## <div align="center">References</div>
63
-
64
- Please cite this paper if this project helps you:
65
-
66
- ```latex
67
- @Article{wang_easyidp_2021,
68
- AUTHOR = {Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
69
- TITLE = {EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
70
- JOURNAL = {Remote Sensing},
71
- VOLUME = {13},
72
- YEAR = {2021},
73
- NUMBER = {13},
74
- ARTICLE-NUMBER = {2622},
75
- URL = {https://www.mdpi.com/2072-4292/13/13/2622},
76
- ISSN = {2072-4292},
77
- DOI = {10.3390/rs13132622}
78
- }
79
- ```
80
-
81
- We also thanks the benefits from the following open source projects:
82
-
83
- * package main (**for users**)
84
- * numpy: [https://numpy.org/](https://numpy.org/)
85
- * matplotlib:[https://matplotlib.org/](https://matplotlib.org/)
86
- * scikit-image: [https://github.com/scikit-image/scikit-image](https://github.com/scikit-image/scikit-image)
87
- * pyproj: [https://github.com/pyproj4/pyproj](https://github.com/pyproj4/pyproj)
88
- * tifffile: [https://github.com/cgohlke/tifffile](https://github.com/cgohlke/tifffile)
89
- * imagecodecs: [https://github.com/cgohlke/imagecodecs](https://github.com/cgohlke/imagecodecs)
90
- * shapely: [https://github.com/shapely/shapely](https://github.com/shapely/shapely)
91
- * laspy/lasrs/lasio: [https://github.com/laspy/laspy](https://github.com/laspy/laspy)
92
- * plyfile: [https://github.com/dranjan/python-plyfile](https://github.com/dranjan/python-plyfile)
93
- * pyshp: [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp)
94
- * tabulate: [https://github.com/astanin/python-tabulate](https://github.com/astanin/python-tabulate)
95
- * tqdm: [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)
96
- * gdown: [https://github.com/wkentaro/gdown](https://github.com/wkentaro/gdown)
97
- * package documentation (**for developers**)
98
- * sphinx: [https://github.com/sphinx-doc/sphinx](https://github.com/sphinx-doc/sphinx)
99
- * nbsphinx: [https://github.com/spatialaudio/nbsphinx](https://github.com/spatialaudio/nbsphinx)
100
- * sphinx-gallery: [https://github.com/sphinx-gallery/sphinx-gallery](https://github.com/sphinx-gallery/sphinx-gallery)
101
- * sphinx-inline-tabs: [https://github.com/pradyunsg/sphinx-inline-tabs](https://github.com/pradyunsg/sphinx-inline-tabs)
102
- * sphinx-intl: [https://github.com/sphinx-doc/sphinx-intl](https://github.com/sphinx-doc/sphinx-intl)
103
- * sphinx-rtc-theme: [https://github.com/readthedocs/sphinx_rtd_theme](https://github.com/readthedocs/sphinx_rtd_theme)
104
- * furo: [https://github.com/pradyunsg/furo](https://github.com/pradyunsg/furo)
105
- * package testing and releasing (**for developers**)
106
- * pytest: [https://github.com/pytest-dev/pytest](https://github.com/pytest-dev/pytest)
107
- * packaging: [https://github.com/pypa/packaging](https://github.com/pypa/packaging)
108
- * wheel: [https://github.com/pypa/wheel](https://github.com/pypa/wheel)
109
-
110
- This project was partially funded by:
111
-
112
- * the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;
113
- * the SICORP Program JPMJSC16H2;
114
- * CREST Programs JPMJCR16O2 and JPMJCR16O1;
115
- * the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);
116
- * the National Natural Science Foundation of China U19A2061.
1
+ Metadata-Version: 2.4
2
+ Name: easyidp
3
+ Version: 2.0.1
4
+ Summary: A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications
5
+ Project-URL: documentation, https://easyidp.readthedocs.io/en/latest/
6
+ Project-URL: source, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP
7
+ Project-URL: issues, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/issues
8
+ Project-URL: forum, https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions
9
+ Author-email: Haozhou Wang <howcanoewang@gmail.com>
10
+ License: MIT
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Scientific/Engineering :: GIS
21
+ Requires-Python: >=3.10
22
+ Requires-Dist: chardet>=5.2.0
23
+ Requires-Dist: gdown>=5.2.0
24
+ Requires-Dist: geojson>=3.2.0
25
+ Requires-Dist: imagecodecs>=2025.3.30
26
+ Requires-Dist: laspy>=2.5.4
27
+ Requires-Dist: lazrs>=0.6.3
28
+ Requires-Dist: matplotlib>=3.10.3
29
+ Requires-Dist: numpy>=2.2.5
30
+ Requires-Dist: plyfile>=1.1
31
+ Requires-Dist: pyproj>=3.7.1
32
+ Requires-Dist: pyshp>=2.3.1
33
+ Requires-Dist: scikit-image>=0.25.2
34
+ Requires-Dist: shapely>=2.1.0
35
+ Requires-Dist: tabulate>=0.9.0
36
+ Requires-Dist: tifffile>=2025.5.10
37
+ Requires-Dist: tqdm>=4.67.1
38
+ Description-Content-Type: text/markdown
39
+
40
+ <div align="center">
41
+
42
+ <p>
43
+ <!-- <a align="left" href="https://ultralytics.com/yolov5" target="_blank"> -->
44
+ <img width="850" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/raw/v2.0/docs/_static/images/header_v2.0.png"></a>
45
+ </p>
46
+
47
+ <p align="center">
48
+ <img alt="GitHub Actions Badge" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/actions/workflows/pytest.yml/badge.svg?style=plastic">
49
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/easyidp?style=plastic">
50
+ <img alt="GitHub" src="https://img.shields.io/github/license/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
51
+ <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
52
+ <img alt="GitHub Downloads" src="https://img.shields.io/github/downloads/UTokyo-FieldPhenomics-Lab/EasyIDP/total?label=github%20downloads&style=plastic">
53
+ <img alt="GitHub Downloads" src="https://img.shields.io/pypi/dm/easyidp?color=%233775A9&label=pypi%20downloads&style=plastic">
54
+ </p>
55
+
56
+ </div>
57
+
58
+ EasyIDP (Easy Intermediate Data Processor), A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications. It provides the following functions:
59
+
60
+ 1. Backward Projection ROI to original images (`Backward Projector`).
61
+ 2. Crop ROI on GeoTiff Maps (DOM & DSM) and Point Cloud (`ROI Cropper`).
62
+ 3. Save cropped results to corresponding files (`ROI Saver`).
63
+
64
+ This project tried to use packges based on pure-python, instead of installing some heavy packages (Open3D, OpenCV) and hard to install packages (GDAL dependices) for one or two individual functions. This may cause efficiency loss and differences in coding habit.
65
+
66
+ <p align="center">
67
+ <img alt="GitHub Downloads" height="400px" src="https://api.star-history.com/svg?repos=UTokyo-FieldPhenomics-Lab/EasyIDP&type=Date">
68
+ </p>
69
+
70
+ ## <div align="center">Documentation</div>
71
+
72
+ Please check [Official Documents](https://easyidp.readthedocs.io/en/latest/) ( [中文](https://easyidp.readthedocs.io/zh_CN/latest/) | [日本語(翻訳募集)](https://easyidp.readthedocs.io/ja/latest/) ) for full documentations. And please also use the [Github Discussion](https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions) when you meet any problems.
73
+
74
+ ## <div align="center">References</div>
75
+
76
+ Please cite this paper if this project helps you:
77
+
78
+ ```latex
79
+ @Article{wang_easyidp_2021,
80
+ AUTHOR = {Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
81
+ TITLE = {EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
82
+ JOURNAL = {Remote Sensing},
83
+ VOLUME = {13},
84
+ YEAR = {2021},
85
+ NUMBER = {13},
86
+ ARTICLE-NUMBER = {2622},
87
+ URL = {https://www.mdpi.com/2072-4292/13/13/2622},
88
+ ISSN = {2072-4292},
89
+ DOI = {10.3390/rs13132622}
90
+ }
91
+ ```
92
+
93
+ We also thanks the benefits from the following open source projects:
94
+
95
+ * package main (**for users**)
96
+ * numpy: [https://numpy.org/](https://numpy.org/)
97
+ * matplotlib:[https://matplotlib.org/](https://matplotlib.org/)
98
+ * scikit-image: [https://github.com/scikit-image/scikit-image](https://github.com/scikit-image/scikit-image)
99
+ * pyproj: [https://github.com/pyproj4/pyproj](https://github.com/pyproj4/pyproj)
100
+ * tifffile: [https://github.com/cgohlke/tifffile](https://github.com/cgohlke/tifffile)
101
+ * imagecodecs: [https://github.com/cgohlke/imagecodecs](https://github.com/cgohlke/imagecodecs)
102
+ * shapely: [https://github.com/shapely/shapely](https://github.com/shapely/shapely)
103
+ * laspy/lasrs/lasio: [https://github.com/laspy/laspy](https://github.com/laspy/laspy)
104
+ * geojson: [https://github.com/jazzband/geojson](https://github.com/jazzband/geojson)
105
+ * plyfile: [https://github.com/dranjan/python-plyfile](https://github.com/dranjan/python-plyfile)
106
+ * pyshp: [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp)
107
+ * tabulate: [https://github.com/astanin/python-tabulate](https://github.com/astanin/python-tabulate)
108
+ * tqdm: [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)
109
+ * gdown: [https://github.com/wkentaro/gdown](https://github.com/wkentaro/gdown)
110
+ * package documentation (**for developers**)
111
+ * sphinx: [https://github.com/sphinx-doc/sphinx](https://github.com/sphinx-doc/sphinx)
112
+ * nbsphinx: [https://github.com/spatialaudio/nbsphinx](https://github.com/spatialaudio/nbsphinx)
113
+ * sphinx-gallery: [https://github.com/sphinx-gallery/sphinx-gallery](https://github.com/sphinx-gallery/sphinx-gallery)
114
+ * sphinx-inline-tabs: [https://github.com/pradyunsg/sphinx-inline-tabs](https://github.com/pradyunsg/sphinx-inline-tabs)
115
+ * sphinx-intl: [https://github.com/sphinx-doc/sphinx-intl](https://github.com/sphinx-doc/sphinx-intl)
116
+ * sphinx-rtc-theme: [https://github.com/readthedocs/sphinx_rtd_theme](https://github.com/readthedocs/sphinx_rtd_theme)
117
+ * furo: [https://github.com/pradyunsg/furo](https://github.com/pradyunsg/furo)
118
+ * package testing and releasing (**for developers**)
119
+ * pytest: [https://github.com/pytest-dev/pytest](https://github.com/pytest-dev/pytest)
120
+ * packaging: [https://github.com/pypa/packaging](https://github.com/pypa/packaging)
121
+ * wheel: [https://github.com/pypa/wheel](https://github.com/pypa/wheel)
122
+
123
+ This project was partially funded by:
124
+
125
+ * the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;
126
+ * the SICORP Program JPMJSC16H2;
127
+ * CREST Programs JPMJCR16O2 and JPMJCR16O1;
128
+ * the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);
129
+ * the National Natural Science Foundation of China U19A2061.
@@ -1,87 +1,90 @@
1
- <div align="center">
2
-
3
- <p>
4
- <!-- <a align="left" href="https://ultralytics.com/yolov5" target="_blank"> -->
5
- <img width="850" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/raw/v2.0/docs/_static/images/header_v2.0.png"></a>
6
- </p>
7
-
8
- <p align="center">
9
- <img alt="GitHub code size in bytes" src="https://img.shields.io/tokei/lines/github/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
10
- <img alt="GitHub" src="https://img.shields.io/github/license/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
11
- <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
12
- <img alt="GitHub Downloads" src="https://img.shields.io/github/downloads/UTokyo-FieldPhenomics-Lab/EasyIDP/total?label=github%20downloads&style=plastic">
13
- <img alt="GitHub Downloads" src="https://img.shields.io/pypi/dm/easyidp?color=%233775A9&label=pypi%20downloads&style=plastic">
14
- </p>
15
-
16
-
17
-
18
- </div>
19
-
20
- EasyIDP (Easy Intermediate Data Processor), A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications. It provides the following functions:
21
-
22
- 1. Backward Projection ROI to original images (`Backward Projector`).
23
- 2. Crop ROI on GeoTiff Maps (DOM & DSM) and Point Cloud (`ROI Cropper`).
24
- 3. Save cropped results to corresponding files (`ROI Saver`).
25
-
26
- This project tried to use packges based on pure-python, instead of installing some heavy packages (Open3D, OpenCV) and hard to install packages (GDAL dependices) for one or two individual functions. This may cause efficiency loss and differences in coding habit.
27
-
28
- ## <div align="center">Documentation</div>
29
-
30
- Please check [Official Documents](https://easyidp.readthedocs.io/en/latest/) ( [中文](https://easyidp.readthedocs.io/zh_CN/latest/) | [日本語(翻訳募集)](https://easyidp.readthedocs.io/ja/latest/) ) for full documentations. And please also use the [Github Discussion](https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions) when you meet any problems.
31
-
32
-
33
- ## <div align="center">References</div>
34
-
35
- Please cite this paper if this project helps you:
36
-
37
- ```latex
38
- @Article{wang_easyidp_2021,
39
- AUTHOR = {Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
40
- TITLE = {EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
41
- JOURNAL = {Remote Sensing},
42
- VOLUME = {13},
43
- YEAR = {2021},
44
- NUMBER = {13},
45
- ARTICLE-NUMBER = {2622},
46
- URL = {https://www.mdpi.com/2072-4292/13/13/2622},
47
- ISSN = {2072-4292},
48
- DOI = {10.3390/rs13132622}
49
- }
50
- ```
51
-
52
- We also thanks the benefits from the following open source projects:
53
-
54
- * package main (**for users**)
55
- * numpy: [https://numpy.org/](https://numpy.org/)
56
- * matplotlib:[https://matplotlib.org/](https://matplotlib.org/)
57
- * scikit-image: [https://github.com/scikit-image/scikit-image](https://github.com/scikit-image/scikit-image)
58
- * pyproj: [https://github.com/pyproj4/pyproj](https://github.com/pyproj4/pyproj)
59
- * tifffile: [https://github.com/cgohlke/tifffile](https://github.com/cgohlke/tifffile)
60
- * imagecodecs: [https://github.com/cgohlke/imagecodecs](https://github.com/cgohlke/imagecodecs)
61
- * shapely: [https://github.com/shapely/shapely](https://github.com/shapely/shapely)
62
- * laspy/lasrs/lasio: [https://github.com/laspy/laspy](https://github.com/laspy/laspy)
63
- * plyfile: [https://github.com/dranjan/python-plyfile](https://github.com/dranjan/python-plyfile)
64
- * pyshp: [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp)
65
- * tabulate: [https://github.com/astanin/python-tabulate](https://github.com/astanin/python-tabulate)
66
- * tqdm: [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)
67
- * gdown: [https://github.com/wkentaro/gdown](https://github.com/wkentaro/gdown)
68
- * package documentation (**for developers**)
69
- * sphinx: [https://github.com/sphinx-doc/sphinx](https://github.com/sphinx-doc/sphinx)
70
- * nbsphinx: [https://github.com/spatialaudio/nbsphinx](https://github.com/spatialaudio/nbsphinx)
71
- * sphinx-gallery: [https://github.com/sphinx-gallery/sphinx-gallery](https://github.com/sphinx-gallery/sphinx-gallery)
72
- * sphinx-inline-tabs: [https://github.com/pradyunsg/sphinx-inline-tabs](https://github.com/pradyunsg/sphinx-inline-tabs)
73
- * sphinx-intl: [https://github.com/sphinx-doc/sphinx-intl](https://github.com/sphinx-doc/sphinx-intl)
74
- * sphinx-rtc-theme: [https://github.com/readthedocs/sphinx_rtd_theme](https://github.com/readthedocs/sphinx_rtd_theme)
75
- * furo: [https://github.com/pradyunsg/furo](https://github.com/pradyunsg/furo)
76
- * package testing and releasing (**for developers**)
77
- * pytest: [https://github.com/pytest-dev/pytest](https://github.com/pytest-dev/pytest)
78
- * packaging: [https://github.com/pypa/packaging](https://github.com/pypa/packaging)
79
- * wheel: [https://github.com/pypa/wheel](https://github.com/pypa/wheel)
80
-
81
- This project was partially funded by:
82
-
83
- * the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;
84
- * the SICORP Program JPMJSC16H2;
85
- * CREST Programs JPMJCR16O2 and JPMJCR16O1;
86
- * the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);
87
- * the National Natural Science Foundation of China U19A2061.
1
+ <div align="center">
2
+
3
+ <p>
4
+ <!-- <a align="left" href="https://ultralytics.com/yolov5" target="_blank"> -->
5
+ <img width="850" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/raw/v2.0/docs/_static/images/header_v2.0.png"></a>
6
+ </p>
7
+
8
+ <p align="center">
9
+ <img alt="GitHub Actions Badge" src="https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/actions/workflows/pytest.yml/badge.svg?style=plastic">
10
+ <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/easyidp?style=plastic">
11
+ <img alt="GitHub" src="https://img.shields.io/github/license/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
12
+ <img alt="GitHub top language" src="https://img.shields.io/github/languages/top/UTokyo-FieldPhenomics-Lab/EasyIDP?style=plastic">
13
+ <img alt="GitHub Downloads" src="https://img.shields.io/github/downloads/UTokyo-FieldPhenomics-Lab/EasyIDP/total?label=github%20downloads&style=plastic">
14
+ <img alt="GitHub Downloads" src="https://img.shields.io/pypi/dm/easyidp?color=%233775A9&label=pypi%20downloads&style=plastic">
15
+ </p>
16
+
17
+ </div>
18
+
19
+ EasyIDP (Easy Intermediate Data Processor), A handy tool for dealing with region of interest (ROI) on the image reconstruction (Metashape & Pix4D) outputs, mainly in agriculture applications. It provides the following functions:
20
+
21
+ 1. Backward Projection ROI to original images (`Backward Projector`).
22
+ 2. Crop ROI on GeoTiff Maps (DOM & DSM) and Point Cloud (`ROI Cropper`).
23
+ 3. Save cropped results to corresponding files (`ROI Saver`).
24
+
25
+ This project tried to use packges based on pure-python, instead of installing some heavy packages (Open3D, OpenCV) and hard to install packages (GDAL dependices) for one or two individual functions. This may cause efficiency loss and differences in coding habit.
26
+
27
+ <p align="center">
28
+ <img alt="GitHub Downloads" height="400px" src="https://api.star-history.com/svg?repos=UTokyo-FieldPhenomics-Lab/EasyIDP&type=Date">
29
+ </p>
30
+
31
+ ## <div align="center">Documentation</div>
32
+
33
+ Please check [Official Documents](https://easyidp.readthedocs.io/en/latest/) ( [中文](https://easyidp.readthedocs.io/zh_CN/latest/) | [日本語(翻訳募集)](https://easyidp.readthedocs.io/ja/latest/) ) for full documentations. And please also use the [Github Discussion](https://github.com/UTokyo-FieldPhenomics-Lab/EasyIDP/discussions) when you meet any problems.
34
+
35
+ ## <div align="center">References</div>
36
+
37
+ Please cite this paper if this project helps you:
38
+
39
+ ```latex
40
+ @Article{wang_easyidp_2021,
41
+ AUTHOR = {Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
42
+ TITLE = {EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
43
+ JOURNAL = {Remote Sensing},
44
+ VOLUME = {13},
45
+ YEAR = {2021},
46
+ NUMBER = {13},
47
+ ARTICLE-NUMBER = {2622},
48
+ URL = {https://www.mdpi.com/2072-4292/13/13/2622},
49
+ ISSN = {2072-4292},
50
+ DOI = {10.3390/rs13132622}
51
+ }
52
+ ```
53
+
54
+ We also thanks the benefits from the following open source projects:
55
+
56
+ * package main (**for users**)
57
+ * numpy: [https://numpy.org/](https://numpy.org/)
58
+ * matplotlib:[https://matplotlib.org/](https://matplotlib.org/)
59
+ * scikit-image: [https://github.com/scikit-image/scikit-image](https://github.com/scikit-image/scikit-image)
60
+ * pyproj: [https://github.com/pyproj4/pyproj](https://github.com/pyproj4/pyproj)
61
+ * tifffile: [https://github.com/cgohlke/tifffile](https://github.com/cgohlke/tifffile)
62
+ * imagecodecs: [https://github.com/cgohlke/imagecodecs](https://github.com/cgohlke/imagecodecs)
63
+ * shapely: [https://github.com/shapely/shapely](https://github.com/shapely/shapely)
64
+ * laspy/lasrs/lasio: [https://github.com/laspy/laspy](https://github.com/laspy/laspy)
65
+ * geojson: [https://github.com/jazzband/geojson](https://github.com/jazzband/geojson)
66
+ * plyfile: [https://github.com/dranjan/python-plyfile](https://github.com/dranjan/python-plyfile)
67
+ * pyshp: [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp)
68
+ * tabulate: [https://github.com/astanin/python-tabulate](https://github.com/astanin/python-tabulate)
69
+ * tqdm: [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)
70
+ * gdown: [https://github.com/wkentaro/gdown](https://github.com/wkentaro/gdown)
71
+ * package documentation (**for developers**)
72
+ * sphinx: [https://github.com/sphinx-doc/sphinx](https://github.com/sphinx-doc/sphinx)
73
+ * nbsphinx: [https://github.com/spatialaudio/nbsphinx](https://github.com/spatialaudio/nbsphinx)
74
+ * sphinx-gallery: [https://github.com/sphinx-gallery/sphinx-gallery](https://github.com/sphinx-gallery/sphinx-gallery)
75
+ * sphinx-inline-tabs: [https://github.com/pradyunsg/sphinx-inline-tabs](https://github.com/pradyunsg/sphinx-inline-tabs)
76
+ * sphinx-intl: [https://github.com/sphinx-doc/sphinx-intl](https://github.com/sphinx-doc/sphinx-intl)
77
+ * sphinx-rtc-theme: [https://github.com/readthedocs/sphinx_rtd_theme](https://github.com/readthedocs/sphinx_rtd_theme)
78
+ * furo: [https://github.com/pradyunsg/furo](https://github.com/pradyunsg/furo)
79
+ * package testing and releasing (**for developers**)
80
+ * pytest: [https://github.com/pytest-dev/pytest](https://github.com/pytest-dev/pytest)
81
+ * packaging: [https://github.com/pypa/packaging](https://github.com/pypa/packaging)
82
+ * wheel: [https://github.com/pypa/wheel](https://github.com/pypa/wheel)
83
+
84
+ This project was partially funded by:
85
+
86
+ * the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;
87
+ * the SICORP Program JPMJSC16H2;
88
+ * CREST Programs JPMJCR16O2 and JPMJCR16O1;
89
+ * the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);
90
+ * the National Natural Science Foundation of China U19A2061.
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Binary file