easyidp 2.0.0.dev3__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.
- easyidp-2.0.1/.gitattributes +2 -0
- easyidp-2.0.1/.github/workflows/pytest.yml +38 -0
- easyidp-2.0.1/.github/workflows/uv-publish.yml +34 -0
- easyidp-2.0.1/.gitignore +18 -0
- easyidp-2.0.1/.python-version +1 -0
- easyidp-2.0.1/.readthedocs.yaml +29 -0
- easyidp-2.0.0.dev3/README.md → easyidp-2.0.1/PKG-INFO +129 -202
- easyidp-2.0.0.dev3/PKG-INFO → easyidp-2.0.1/README.md +90 -229
- easyidp-2.0.1/docs/Makefile +20 -0
- easyidp-2.0.1/docs/_static/anime.pptx +0 -0
- easyidp-2.0.1/docs/_static/images/data/2017_tanashi_lotus.png +0 -0
- easyidp-2.0.1/docs/_static/images/data/2022_florida_forestbirds.png +0 -0
- easyidp-2.0.1/docs/_static/images/geotiff_transparency/crop_png.png +0 -0
- easyidp-2.0.1/docs/_static/images/geotiff_transparency/ref_rgb.png +0 -0
- easyidp-2.0.1/docs/_static/images/header_v2.0.png +0 -0
- easyidp-2.0.1/docs/_static/images/jupyter/backward.png +0 -0
- easyidp-2.0.1/docs/_static/images/jupyter/crop.png +0 -0
- easyidp-2.0.1/docs/_static/images/jupyter/forward.png +0 -0
- easyidp-2.0.1/docs/_static/images/jupyter/shp_icon.png +0 -0
- easyidp-2.0.1/docs/_static/images/jupyter/zval.png +0 -0
- easyidp-2.0.1/docs/_static/images/metashape_multi_chunks.png +0 -0
- easyidp-2.0.1/docs/_static/images/metashape_single_chunk.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/back2raw_ignore_todo.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/back2raw_save.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/back2raw_sort.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/percentile_mean.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/roi_crop_mode.png +0 -0
- easyidp-2.0.1/docs/_static/images/python_api/save_geotiff_offset.png +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/cc_mark_txt.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/gimp_coord.jpg +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/labelme_cancel_save_img_data.png +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/labelme_demo_img.JPG +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/labelme_demo_preview.png +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/labelme_mark.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_activate_toolbar.png +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_add_roi.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_adv_roi.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_init_shp.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_load_map.png +0 -0
- easyidp-2.0.1/docs/_static/images/roi_marking/qgis_mv_roi.gif +0 -0
- easyidp-2.0.1/docs/_static/images/roi_types.png +0 -0
- easyidp-2.0.1/docs/_static/images/visualize/draw_backward_one_roi.png +0 -0
- easyidp-2.0.1/docs/_static/images/visualize/p4d_back2raw_single_view.png +0 -0
- easyidp-2.0.1/docs/_static/images/visualize/p4d_back2raw_single_view2.png +0 -0
- easyidp-2.0.1/docs/_static/jsons/roi_marking/labelme_demo_img.json +34 -0
- easyidp-2.0.1/docs/backgrounds/geotiff_transparency.rst +90 -0
- easyidp-2.0.1/docs/backgrounds/roi_marking.rst +253 -0
- easyidp-2.0.1/docs/backgrounds/virtualenv.rst +116 -0
- easyidp-2.0.1/docs/conf.py +94 -0
- easyidp-2.0.1/docs/contribute.rst +304 -0
- easyidp-2.0.1/docs/index.rst +442 -0
- easyidp-2.0.1/docs/install.rst +125 -0
- easyidp-2.0.1/docs/jupyter/backward_projection.ipynb +761 -0
- easyidp-2.0.1/docs/jupyter/crop_outputs.ipynb +521 -0
- easyidp-2.0.1/docs/jupyter/forward_projection.ipynb +1785 -0
- easyidp-2.0.1/docs/jupyter/get_z_from_dsm.ipynb +97 -0
- easyidp-2.0.1/docs/jupyter/load_roi.ipynb +1156 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/backgrounds.po +472 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/contribute.po +260 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/index.po +581 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/install.po +163 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/jupyter.po +833 -0
- easyidp-2.0.1/docs/locale/ja/LC_MESSAGES/python_api.po +7326 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/backgrounds.po +496 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/contribute.po +277 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/index.po +528 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/install.po +161 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/jupyter.po +735 -0
- easyidp-2.0.1/docs/locale/zh_CN/LC_MESSAGES/python_api.po +6680 -0
- easyidp-2.0.1/docs/make.bat +35 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.imarray_crop.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.poly2mask.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.cvtools.rgb2gray.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.EasyidpDataSet.rst +25 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.ForestBirds.rst +33 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.Lotus.rst +33 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.TestData.rst +33 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.download_all.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.show_data_dir.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.url_checker.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.data.user_data_dir.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.GeoTiff.rst +47 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.geo2pixel.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.get_header.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.get_imarray.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.pixel2geo.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.point_query.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.save_geotiff.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotiff.tifffile_crop.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.convert_proj.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.convert_proj3d.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.geotools.is_single_point.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.dict2json.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.read_geojson.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.read_json.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.save_json.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.show_geojson_fields.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.jsonfile.write_json.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.Metashape.rst +49 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.apply_transform_matrix.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.read_chunk_zip.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.metashape.read_project_zip.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.Pix4D.rst +47 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.parse_p4d_param_folder.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.parse_p4d_project.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_cam_ssk.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_campos_geo.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_ccp.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_cicp.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_pmat.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pix4d.read_xyz.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.PointCloud.rst +44 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_las.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_laz.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.read_ply.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_las.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_laz.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.pointcloud.write_ply.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Calibration.rst +48 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst +32 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Photo.rst +39 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Recons.rst +36 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.Sensor.rst +40 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.save_back2raw_json_and_png.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.reconstruct.sort_img_by_distance.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.roi.read_cc_txt.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.read_proj.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.read_shp.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.shp.show_shp_fields.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.visualize.draw_backward_one_roi.rst +6 -0
- easyidp-2.0.1/docs/python_api/autodoc/easyidp.visualize.draw_polygon_on_img.rst +6 -0
- easyidp-2.0.1/docs/python_api/cvtools.rst +20 -0
- easyidp-2.0.1/docs/python_api/data.rst +95 -0
- easyidp-2.0.1/docs/python_api/geotiff.rst +36 -0
- easyidp-2.0.1/docs/python_api/geotools.rst +19 -0
- easyidp-2.0.1/docs/python_api/index.rst +49 -0
- easyidp-2.0.1/docs/python_api/json.rst +29 -0
- easyidp-2.0.1/docs/python_api/manualdoc/easyidp.roi.ROI.rst +37 -0
- easyidp-2.0.1/docs/python_api/metashape.rst +34 -0
- easyidp-2.0.1/docs/python_api/pix4d.rst +37 -0
- easyidp-2.0.1/docs/python_api/pointcloud.rst +36 -0
- easyidp-2.0.1/docs/python_api/reconstruct.rst +110 -0
- easyidp-2.0.1/docs/python_api/roi.rst +33 -0
- easyidp-2.0.1/docs/python_api/shp.rst +21 -0
- easyidp-2.0.1/docs/python_api/visualize.rst +17 -0
- easyidp-2.0.1/pyproject.toml +71 -0
- easyidp-2.0.1/src/easyidp/__init__.py +273 -0
- easyidp-2.0.1/src/easyidp/cvtools.py +323 -0
- easyidp-2.0.1/src/easyidp/data.py +889 -0
- {easyidp-2.0.0.dev3 → easyidp-2.0.1/src}/easyidp/geotiff.py +1743 -1130
- easyidp-2.0.1/src/easyidp/geotools.py +280 -0
- easyidp-2.0.1/src/easyidp/jsonfile.py +592 -0
- easyidp-2.0.1/src/easyidp/metashape.py +1999 -0
- easyidp-2.0.1/src/easyidp/pix4d.py +1903 -0
- easyidp-2.0.1/src/easyidp/pointcloud.py +1304 -0
- easyidp-2.0.1/src/easyidp/py.typed +0 -0
- easyidp-2.0.1/src/easyidp/reconstruct.py +776 -0
- easyidp-2.0.1/src/easyidp/roi.py +1184 -0
- {easyidp-2.0.0.dev3 → easyidp-2.0.1/src}/easyidp/shp.py +165 -104
- easyidp-2.0.1/src/easyidp/visualize.py +349 -0
- easyidp-2.0.1/tests/__init__.py +33 -0
- easyidp-2.0.1/tests/test_cvtools.py +273 -0
- easyidp-2.0.1/tests/test_data.py +205 -0
- {easyidp-2.0.0.dev3 → easyidp-2.0.1}/tests/test_geotiff.py +170 -42
- easyidp-2.0.1/tests/test_init_class_func.py +135 -0
- easyidp-2.0.1/tests/test_jsonfile.py +132 -0
- easyidp-2.0.1/tests/test_metashape.py +852 -0
- {easyidp-2.0.0.dev3 → easyidp-2.0.1}/tests/test_pix4d.py +70 -35
- {easyidp-2.0.0.dev3 → easyidp-2.0.1}/tests/test_pointcloud.py +14 -20
- easyidp-2.0.1/tests/test_reconstruct.py +328 -0
- {easyidp-2.0.0.dev3 → easyidp-2.0.1}/tests/test_roi.py +138 -39
- {easyidp-2.0.0.dev3 → easyidp-2.0.1}/tests/test_shp.py +87 -46
- easyidp-2.0.1/tests/test_visualize.py +117 -0
- easyidp-2.0.1/uv.lock +2312 -0
- easyidp-2.0.0.dev3/LICENSE +0 -21
- easyidp-2.0.0.dev3/easyidp/__init__.py +0 -157
- easyidp-2.0.0.dev3/easyidp/cvtools.py +0 -237
- easyidp-2.0.0.dev3/easyidp/data.py +0 -533
- easyidp-2.0.0.dev3/easyidp/jsonfile.py +0 -268
- easyidp-2.0.0.dev3/easyidp/metashape.py +0 -1134
- easyidp-2.0.0.dev3/easyidp/pix4d.py +0 -1012
- easyidp-2.0.0.dev3/easyidp/pointcloud.py +0 -534
- easyidp-2.0.0.dev3/easyidp/reconstruct.py +0 -470
- easyidp-2.0.0.dev3/easyidp/roi.py +0 -455
- easyidp-2.0.0.dev3/easyidp/visualize.py +0 -109
- easyidp-2.0.0.dev3/easyidp.egg-info/PKG-INFO +0 -229
- easyidp-2.0.0.dev3/easyidp.egg-info/SOURCES.txt +0 -33
- easyidp-2.0.0.dev3/easyidp.egg-info/dependency_links.txt +0 -1
- easyidp-2.0.0.dev3/easyidp.egg-info/requires.txt +0 -31
- easyidp-2.0.0.dev3/easyidp.egg-info/top_level.txt +0 -2
- easyidp-2.0.0.dev3/setup.cfg +0 -7
- easyidp-2.0.0.dev3/setup.py +0 -64
- easyidp-2.0.0.dev3/tests/__init__.py +0 -16
- easyidp-2.0.0.dev3/tests/test_cvtools.py +0 -167
- easyidp-2.0.0.dev3/tests/test_data.py +0 -29
- easyidp-2.0.0.dev3/tests/test_jsonfile.py +0 -40
- easyidp-2.0.0.dev3/tests/test_metashape.py +0 -342
- easyidp-2.0.0.dev3/tests/test_pathtools.py +0 -31
- easyidp-2.0.0.dev3/tests/test_reconstruct.py +0 -224
|
@@ -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
|
easyidp-2.0.1/.gitignore
ADDED
|
@@ -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,202 +1,129 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
2.
|
|
24
|
-
3.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
# the roi pixel coordinate on that image
|
|
132
|
-
>>> img_dict['DJI_0177.JPG']
|
|
133
|
-
array([[ 779, 902],
|
|
134
|
-
[1043, 846],
|
|
135
|
-
[1099, 1110],
|
|
136
|
-
[ 834, 1166],
|
|
137
|
-
[ 779, 902]])
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Save backward projected images
|
|
141
|
-
|
|
142
|
-
```python
|
|
143
|
-
img_dict = roi.back2raw(chunk1, save_folder="folder/to/put/results/")
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
</details>
|
|
147
|
-
|
|
148
|
-
## <div align="center">References</div>
|
|
149
|
-
|
|
150
|
-
Please cite this paper if this project helps you:
|
|
151
|
-
|
|
152
|
-
```latex
|
|
153
|
-
@Article{wang_easyidp_2021,
|
|
154
|
-
AUTHOR = {Wang, Haozhou and Duan, Yulin and Shi, Yun and Kato, Yoichiro and Ninomiya, Seish and Guo, Wei},
|
|
155
|
-
TITLE = {EasyIDP: A Python Package for Intermediate Data Processing in UAV-Based Plant Phenotyping},
|
|
156
|
-
JOURNAL = {Remote Sensing},
|
|
157
|
-
VOLUME = {13},
|
|
158
|
-
YEAR = {2021},
|
|
159
|
-
NUMBER = {13},
|
|
160
|
-
ARTICLE-NUMBER = {2622},
|
|
161
|
-
URL = {https://www.mdpi.com/2072-4292/13/13/2622},
|
|
162
|
-
ISSN = {2072-4292},
|
|
163
|
-
DOI = {10.3390/rs13132622}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
We also thanks the benefits from the following open source projects:
|
|
168
|
-
|
|
169
|
-
* package main (**for users**)
|
|
170
|
-
* numpy: [https://numpy.org/](https://numpy.org/)
|
|
171
|
-
* matplotlib:[https://matplotlib.org/](https://matplotlib.org/)
|
|
172
|
-
* pillow: [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow)
|
|
173
|
-
* pyproj: [https://github.com/pyproj4/pyproj](https://github.com/pyproj4/pyproj)
|
|
174
|
-
* tifffile: [https://github.com/cgohlke/tifffile](https://github.com/cgohlke/tifffile)
|
|
175
|
-
* imagecodecs: [https://github.com/cgohlke/imagecodecs](https://github.com/cgohlke/imagecodecs)
|
|
176
|
-
* shapely: [https://github.com/shapely/shapely](https://github.com/shapely/shapely)
|
|
177
|
-
* laspy/lasrs/lasio: [https://github.com/laspy/laspy](https://github.com/laspy/laspy)
|
|
178
|
-
* plyfile: [https://github.com/dranjan/python-plyfile](https://github.com/dranjan/python-plyfile)
|
|
179
|
-
* pyshp: [https://github.com/GeospatialPython/pyshp](https://github.com/GeospatialPython/pyshp)
|
|
180
|
-
* tabulate: [https://github.com/astanin/python-tabulate](https://github.com/astanin/python-tabulate)
|
|
181
|
-
* tqdm: [https://github.com/tqdm/tqdm](https://github.com/tqdm/tqdm)
|
|
182
|
-
* gdown: [https://github.com/wkentaro/gdown](https://github.com/wkentaro/gdown)
|
|
183
|
-
* package documentation (**for developers**)
|
|
184
|
-
* sphinx: [https://github.com/sphinx-doc/sphinx](https://github.com/sphinx-doc/sphinx)
|
|
185
|
-
* nbsphinx: [https://github.com/spatialaudio/nbsphinx](https://github.com/spatialaudio/nbsphinx)
|
|
186
|
-
* sphinx-gallery: [https://github.com/sphinx-gallery/sphinx-gallery](https://github.com/sphinx-gallery/sphinx-gallery)
|
|
187
|
-
* sphinx-inline-tabs: [https://github.com/pradyunsg/sphinx-inline-tabs](https://github.com/pradyunsg/sphinx-inline-tabs)
|
|
188
|
-
* sphinx-intl: [https://github.com/sphinx-doc/sphinx-intl](https://github.com/sphinx-doc/sphinx-intl)
|
|
189
|
-
* sphinx-rtc-theme: [https://github.com/readthedocs/sphinx_rtd_theme](https://github.com/readthedocs/sphinx_rtd_theme)
|
|
190
|
-
* furo: [https://github.com/pradyunsg/furo](https://github.com/pradyunsg/furo)
|
|
191
|
-
* package testing and releasing (**for developers**)
|
|
192
|
-
* pytest: [https://github.com/pytest-dev/pytest](https://github.com/pytest-dev/pytest)
|
|
193
|
-
* packaging: [https://github.com/pypa/packaging](https://github.com/pypa/packaging)
|
|
194
|
-
* wheel: [https://github.com/pypa/wheel](https://github.com/pypa/wheel)
|
|
195
|
-
|
|
196
|
-
This project was partially funded by:
|
|
197
|
-
|
|
198
|
-
* the JST AIP Acceleration Research “Studies of CPS platform to raise big-data-driven AI agriculture”;
|
|
199
|
-
* the SICORP Program JPMJSC16H2;
|
|
200
|
-
* CREST Programs JPMJCR16O2 and JPMJCR16O1;
|
|
201
|
-
* the International Science & Technology Innovation Program of Chinese Academy of Agricultural Sciences (CAASTIP);
|
|
202
|
-
* 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.
|