diff --git a/docs/locale/ja/LC_MESSAGES/backgrounds.po b/docs/locale/ja/LC_MESSAGES/backgrounds.po index 447e12f..b6ff752 100644 --- a/docs/locale/ja/LC_MESSAGES/backgrounds.po +++ b/docs/locale/ja/LC_MESSAGES/backgrounds.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: EasyIDP \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-07-19 22:51+0900\n" +"POT-Creation-Date: 2024-08-20 16:38+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.1\n" +"Generated-By: Babel 2.15.0\n" #: ../../backgrounds/geotiff_transparency.rst:5 msgid "GeoTiff Transparency" @@ -183,11 +183,11 @@ msgstr "" msgid "gimp_coord.jpg" msgstr "" -#: ../../backgrounds/roi_marking.rst:107 +#: ../../backgrounds/roi_marking.rst:110 msgid "2\\. Marking ROI on point cloud" msgstr "" -#: ../../backgrounds/roi_marking.rst:109 +#: ../../backgrounds/roi_marking.rst:112 msgid "" "The open source software `CloudCompare `_ is " "used to mark ROI on point clouds based on point picking and save picked " @@ -196,11 +196,11 @@ msgid "" "file." msgstr "" -#: ../../backgrounds/roi_marking.rst:113 +#: ../../backgrounds/roi_marking.rst:116 msgid "ROI marking" msgstr "" -#: ../../backgrounds/roi_marking.rst:115 +#: ../../backgrounds/roi_marking.rst:118 msgid "" "The steps to getting a txt file is as follows, by using ``pick several " "points`` tools to pick points and saving only ``x,y,z`` to txt file." @@ -210,71 +210,70 @@ msgstr "" msgid "cc_mark_txt.gif" msgstr "" -#: ../../backgrounds/roi_marking.rst:121 +#: ../../backgrounds/roi_marking.rst:124 msgid "" "it is recommend to make only one ROI in one TXT file which benefits for " "ROI management, unless you have advanced python data processing skills to" " deal with mixed ROIs in one TXT file." msgstr "" -#: ../../backgrounds/roi_marking.rst:124 +#: ../../backgrounds/roi_marking.rst:127 msgid "ROI reading" msgstr "" -#: ../../backgrounds/roi_marking.rst:126 +#: ../../backgrounds/roi_marking.rst:129 msgid "The produced TXT file looks like this, including 4 vertex by (x, y, z)" msgstr "" -#: ../../backgrounds/roi_marking.rst:135 +#: ../../backgrounds/roi_marking.rst:138 msgid "It can be loaded by EasyIDP directly:" msgstr "" -#: ../../backgrounds/roi_marking.rst:150 +#: ../../backgrounds/roi_marking.rst:153 msgid "The original text only has 4 points:" msgstr "" -#: ../../backgrounds/roi_marking.rst:161 +#: ../../backgrounds/roi_marking.rst:164 msgid "" "However, the definition of polygon requires the first point should be the" " last points, so the outputs of easyidp automatically add to the last " "line." msgstr "" -#: ../../backgrounds/roi_marking.rst:163 +#: ../../backgrounds/roi_marking.rst:166 msgid "" "Due to each txt file contains only one polygon, currently need user " "manual add to ``ROI`` object like follows:" msgstr "" -#: ../../backgrounds/roi_marking.rst:170 ../../backgrounds/roi_marking.rst:249 +#: ../../backgrounds/roi_marking.rst:173 ../../backgrounds/roi_marking.rst:252 msgid "待处理" msgstr "" -#: ../../backgrounds/roi_marking.rst:172 +#: ../../backgrounds/roi_marking.rst:175 msgid "" "In the future, EasyIDP may provide an API to load all txt files in one " "folder as ``ROI`` object directly." msgstr "" -#: ../../backgrounds/roi_marking.rst:176 +#: ../../backgrounds/roi_marking.rst:179 msgid "3\\. Marking ROI on GIS maps" msgstr "" -#: ../../backgrounds/roi_marking.rst:178 +#: ../../backgrounds/roi_marking.rst:181 msgid "" "The open source `QGIS `_ is used to make " "``*.shp`` file of ROI on GIS maps, including DOM and DSM. Users can also " "select any other GIS software which produces standard ``*.shp`` file. The" -" example map data can be downloaded from `here `_:" +" example map data can be found from ``easyidp.data.Lotus().pix4d.dom`` or" +" ``easyidp.data.Lotus().metashape.dom``:" msgstr "" -#: ../../backgrounds/roi_marking.rst:182 +#: ../../backgrounds/roi_marking.rst:185 msgid "Add Polygons" msgstr "" -#: ../../backgrounds/roi_marking.rst:184 +#: ../../backgrounds/roi_marking.rst:187 msgid "Firstly, loading the maps into QGIS software:" msgstr "" @@ -282,7 +281,7 @@ msgstr "" msgid "qgis_load_map.png" msgstr "" -#: ../../backgrounds/roi_marking.rst:190 +#: ../../backgrounds/roi_marking.rst:193 msgid "" "And activate ``digitizing toolbar`` in ``view -> toolbars`` if not " "activated:" @@ -292,7 +291,7 @@ msgstr "" msgid "qgis_activate_toolbar.png" msgstr "" -#: ../../backgrounds/roi_marking.rst:196 +#: ../../backgrounds/roi_marking.rst:199 msgid "" "Then clicking ``new shapefile layer`` in the ``Data Source Manager " "Toolbar``, specify the shp file name and path, changing geometry type to " @@ -305,7 +304,7 @@ msgstr "" msgid "qgis_init_shp.gif" msgstr "" -#: ../../backgrounds/roi_marking.rst:201 +#: ../../backgrounds/roi_marking.rst:204 msgid "" "Click ``Toggle Editing`` in the ``Digitizing toolbar``, then click ``add " "polygon feature`` button, the mouse will change to scope symbol, clicking" @@ -317,21 +316,21 @@ msgstr "" msgid "qgis_add_roi.gif" msgstr "" -#: ../../backgrounds/roi_marking.rst:206 +#: ../../backgrounds/roi_marking.rst:209 msgid "Repeat previous steps until all ROI are marked." msgstr "" -#: ../../backgrounds/roi_marking.rst:208 +#: ../../backgrounds/roi_marking.rst:211 msgid "How to move or duplicate ROI" msgstr "" -#: ../../backgrounds/roi_marking.rst:211 +#: ../../backgrounds/roi_marking.rst:214 msgid "" "Activate ``Advanced digitizing toolbar`` and ``Attributes toolbar`` in " "``view -> toolbars`` if not activated" msgstr "" -#: ../../backgrounds/roi_marking.rst:213 +#: ../../backgrounds/roi_marking.rst:216 msgid "" "click ``Select feature by area or single click`` button in ``Attributes " "toolbar``, and select target roi (its vertex will change to red cross " @@ -344,11 +343,11 @@ msgstr "" msgid "qgis_mv_roi.gif" msgstr "" -#: ../../backgrounds/roi_marking.rst:219 +#: ../../backgrounds/roi_marking.rst:222 msgid "How to make advanced shape ROI" msgstr "" -#: ../../backgrounds/roi_marking.rst:222 +#: ../../backgrounds/roi_marking.rst:225 msgid "" "Activate ``Shape digitizing toolbar`` in ``view -> toolbars`` and if not " "activated" @@ -358,23 +357,23 @@ msgstr "" msgid "qgis_adv_roi.gif" msgstr "" -#: ../../backgrounds/roi_marking.rst:227 +#: ../../backgrounds/roi_marking.rst:230 msgid "" "It provides advanced options for circular string, add circle, add " "ellipse, add rectangle, and add regular polygon." msgstr "" -#: ../../backgrounds/roi_marking.rst:231 +#: ../../backgrounds/roi_marking.rst:234 msgid "Read shp file" msgstr "" -#: ../../backgrounds/roi_marking.rst:233 +#: ../../backgrounds/roi_marking.rst:236 msgid "" "In this example, the `plots.shp` file using default projection system " "EPSG 4326 which default value is (latitude, longitude)." msgstr "" -#: ../../backgrounds/roi_marking.rst:250 +#: ../../backgrounds/roi_marking.rst:253 msgid "" "The shp file only provides 2D coordinates, while 3D geography coordinates" " is needed for further calculation. The DSM can provides the height " @@ -407,54 +406,67 @@ msgstr "" msgid "Activate virtual env" msgstr "" -#: ../../backgrounds/virtualenv.rst:42 ../../backgrounds/virtualenv.rst:87 +#: ../../backgrounds/virtualenv.rst:47 ../../backgrounds/virtualenv.rst:92 msgid "Install EasyIDP package" msgstr "" -#: ../../backgrounds/virtualenv.rst:50 +#: ../../backgrounds/virtualenv.rst:55 msgid "Exit the virtual env" msgstr "" -#: ../../backgrounds/virtualenv.rst:59 +#: ../../backgrounds/virtualenv.rst:64 msgid "Delete the virtual env" msgstr "" -#: ../../backgrounds/virtualenv.rst:61 +#: ../../backgrounds/virtualenv.rst:66 msgid "" "Delete the folder ``C:\\path\\to\\env\\folder`` directly to delete " "environment" msgstr "" -#: ../../backgrounds/virtualenv.rst:68 +#: ../../backgrounds/virtualenv.rst:73 msgid "Conda" msgstr "" -#: ../../backgrounds/virtualenv.rst:71 +#: ../../backgrounds/virtualenv.rst:76 msgid "Create conda env" msgstr "" -#: ../../backgrounds/virtualenv.rst:78 +#: ../../backgrounds/virtualenv.rst:83 msgid "Activate conda env" msgstr "" -#: ../../backgrounds/virtualenv.rst:89 +#: ../../backgrounds/virtualenv.rst:94 msgid "" "Due to the EasyIDP package have not been published to Conda forge, you " "could only use pip to install." msgstr "" -#: ../../backgrounds/virtualenv.rst:96 +#: ../../backgrounds/virtualenv.rst:101 msgid "" "If you using pip in conda virtual envs, other packages should also " "installed by pip. Do not use ``conda install`` and ``pip install`` at he " "same time." msgstr "" -#: ../../backgrounds/virtualenv.rst:99 +#: ../../backgrounds/virtualenv.rst:104 msgid "Exit conda env" msgstr "" -#: ../../backgrounds/virtualenv.rst:107 +#: ../../backgrounds/virtualenv.rst:112 msgid "Delete conda env" msgstr "" +#~ msgid "" +#~ "The open source `QGIS " +#~ "`_ is used to " +#~ "make ``*.shp`` file of ROI on GIS" +#~ " maps, including DOM and DSM. Users" +#~ " can also select any other GIS " +#~ "software which produces standard ``*.shp`` " +#~ "file. The example map data can be" +#~ " downloaded from `here `_:" +#~ msgstr "" + diff --git a/docs/locale/ja/LC_MESSAGES/index.po b/docs/locale/ja/LC_MESSAGES/index.po index d6f0796..1293cdd 100644 --- a/docs/locale/ja/LC_MESSAGES/index.po +++ b/docs/locale/ja/LC_MESSAGES/index.po @@ -8,32 +8,32 @@ msgid "" msgstr "" "Project-Id-Version: EasyIDP \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-06 19:51+0900\n" +"POT-Creation-Date: 2024-08-20 13:46+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.1\n" +"Generated-By: Babel 2.15.0\n" -#: ../../index.rst:343 +#: ../../index.rst:59 msgid "Getting started" msgstr "はじめに" -#: ../../index.rst:350 +#: ../../index.rst:66 msgid "Backgrounds" msgstr "背景" -#: ../../index.rst:341 ../../index.rst:359 +#: ../../index.rst:57 ../../index.rst:75 msgid "Examples" msgstr "" -#: ../../index.rst:365 +#: ../../index.rst:85 msgid "Python API" msgstr "" -#: ../../index.rst:380 +#: ../../index.rst:104 msgid "Development" msgstr "開発" @@ -68,7 +68,7 @@ msgid "Save cropped results to corresponding files" msgstr "切り出した結果を対応するファイルに保存" #: ../../index.rst:-1 -msgid "GitHub code size in bytes" +msgid "PyPI - Python Version" msgstr "" #: ../../index.rst:-1 @@ -116,26 +116,26 @@ msgid "" "latitude, altitude)" msgstr "" -#: ../../index.rst:57 +#: ../../index.rst:113 msgid "Quick Start" msgstr "" -#: ../../index.rst:60 +#: ../../index.rst:116 msgid "You can install the packages by PyPi:" msgstr "" -#: ../../index.rst:69 +#: ../../index.rst:125 msgid "" "If you meet bugs in the pypi version, please consider using the latest " "source code. The tutorial can be found here: :ref:`using-from-source-" "code`." msgstr "" -#: ../../index.rst:72 +#: ../../index.rst:128 msgid "And import the packages in your python code:" msgstr "" -#: ../../index.rst:81 +#: ../../index.rst:137 msgid "" "Before doing the following example, please understand the basic pipeline " "for image 3D reconstruction by Pix4D or Metashape. And know how to export" @@ -143,39 +143,39 @@ msgid "" "basic knowledge about GIS shapefile format (\\*.shp)." msgstr "" -#: ../../index.rst:86 +#: ../../index.rst:142 msgid "1. Read ROI" msgstr "" -#: ../../index.rst:97 +#: ../../index.rst:153 msgid "" "The 2D roi can be used to crop the DOM, DSM, and point cloud ( `2. Crop " "by ROI`_ ). While the 3D roi can be used for Backward projection ( `4. " "Backward Projection`_ )" msgstr "" -#: ../../index.rst:101 +#: ../../index.rst:157 msgid "" "It is highly recommended to ensure the shapefile and geotiff share the " "same coordinate reference systems (CRS), the built-in conversion " "algorithm in EasyIDP may suffer accuracy loss." msgstr "" -#: ../../index.rst:103 +#: ../../index.rst:159 msgid "" "It is recommended to use Coordinate reference systems for \"UTM\" (WGS 84" " / UTM grid system), the unit for x and y are in meters and have been " "tested by EasyIDP developers." msgstr "" -#: ../../index.rst:105 +#: ../../index.rst:161 msgid "" "The traditional (longitude, latitude) coordinates like ``epsg::4326`` " "also supported, but not recommended if you need calculate \"distences\" " "hence its unit is degree." msgstr "" -#: ../../index.rst:107 +#: ../../index.rst:163 msgid "" "The local country commonly used coordinates like BJZ54 (北京54), CGCS2000 " "(2000国家大地坐标系), JDG2011 (日本測地系2011), and etc., have not been tested and " @@ -183,7 +183,7 @@ msgid "" "software if you meet any problem." msgstr "" -#: ../../index.rst:109 +#: ../../index.rst:165 msgid "" "The acceptable ROI types are only polygons (grids are a special type of " "polygon), and the size of each polygon should be fittable into the raw " @@ -191,135 +191,114 @@ msgid "" msgstr "" #: ../../index.rst -msgid "ROI types" +msgid "ROI类型" msgstr "" -#: ../../index.rst:114 +#: ../../index.rst:170 msgid "" "The fourth one may too large to be fitted into each raw image, recommend " "to make smaller polygons." msgstr "" -#: ../../index.rst:117 +#: ../../index.rst:173 msgid "2. Crop by ROI" msgstr "" -#: ../../index.rst:119 +#: ../../index.rst:175 msgid "Read the DOM and DSM Geotiff Maps" msgstr "" -#: ../../index.rst:126 +#: ../../index.rst:182 msgid "Read point cloud data" msgstr "" -#: ../../index.rst:133 +#: ../../index.rst:189 msgid "crop the region of interest from ROI:" msgstr "" -#: ../../index.rst:141 +#: ../../index.rst:197 msgid "If you want to save these crops to given folder:" msgstr "" -#: ../../index.rst:151 +#: ../../index.rst:207 msgid "3. Read Reconstruction projects" msgstr "" -#: ../../index.rst:153 +#: ../../index.rst:209 msgid "You can add the reconstructed plot individually or by batch adding" msgstr "" -#: ../../index.rst:156 -msgid "Add one reconstructed plot" -msgstr "" - -#: ../../index.rst:160 +#: ../../index.rst:216 msgid "" "The Metashape projects naturally support using different chunks for " "different plots in one project file (\\*.psx), so the ``chunk_id`` is " "required to specify which plot are processing." msgstr "" -#: ../../index.rst:168 +#: ../../index.rst:224 msgid "" "Though only the ``xxxx.psx`` is given here, the folder ``xxxx.files`` " "generated by Metashape is more important for EasyIDP. Please put them " "into the same directory." msgstr "" -#: ../../index.rst:182 +#: ../../index.rst:228 msgid "" "Currently, the EasyIDP has not support parse the meta info that records " "the relative path to the raw image folder, so please manual specify the " "``raw_img_folder`` if you need the backward projection." msgstr "" -#: ../../index.rst:184 +#: ../../index.rst:240 msgid "" "Though only the ``xxxx.p4d`` is given here, the folder ``xxxx`` generated" " by Pix4D is more important for EasyIDP. Please put them into the same " "directory and not recommend the change the inner folder structure" msgstr "" -#: ../../index.rst:189 -msgid "Batch pool for multi-plots" -msgstr "" - -#: ../../index.rst:192 ../../index.rst:264 ../../index.rst:291 -#: ../../index.rst:316 -msgid "待处理" -msgstr "" - -#: ../../index.rst:194 ../../index.rst:266 ../../index.rst:293 -#: ../../index.rst:318 -msgid "This feather has not supported yet." -msgstr "" - -#: ../../index.rst:197 -msgid "" -"Add the reconstruction projects to processing pools (different flight " -"time for the same field):" -msgstr "" - -#: ../../index.rst:206 -msgid "Then you can specify each chunk by:" -msgstr "" - -#: ../../index.rst:216 +#: ../../index.rst:272 msgid "4. Backward Projection" msgstr "" -#: ../../index.rst:223 +#: ../../index.rst:279 msgid "Then check the results:" msgstr "" -#: ../../index.rst:240 +#: ../../index.rst:296 msgid "Save backward projected images" msgstr "" -#: ../../index.rst:257 +#: ../../index.rst:313 msgid "5. Forward Projection" msgstr "" -#: ../../index.rst:259 +#: ../../index.rst:315 msgid "" -"This function support refineing the bad quality DOM regions by " -"corresponding raw images, at the mean time, if provided, converting the " -"polygons on raw images back to the DOM with geo-coordinates." +"This function support bring results and image itself from corresponding " +"raw images to geotiff." +msgstr "" + +#: ../../index.rst:317 +msgid "The following features have not been supported." msgstr "" -#: ../../index.rst:262 +#: ../../index.rst:319 msgid "" "Please using the following code to forward project from raw img to DOM " "(``raw forward dom`` -> ``raw4dom``):" msgstr "" -#: ../../index.rst:272 +#: ../../index.rst:321 +msgid "This feather has not supported yet." +msgstr "" + +#: ../../index.rst:327 msgid "" "This is a dict contains the image ndarray of each ROI as keys, which " "projecting the part of raw image onto DOM." msgstr "" -#: ../../index.rst:289 +#: ../../index.rst:335 msgid "" "You can also do the forward projecting with detected results, the polygon" " are in the geo coordinate. Before doing that, please prepare the " @@ -327,217 +306,215 @@ msgid "" "pixel coordinates)." msgstr "" -#: ../../index.rst:300 +#: ../../index.rst:342 msgid "Then forward projecting by giving both to the function:" msgstr "" -#: ../../index.rst:314 -msgid "And save the image results to files:" -msgstr "" - -#: ../../index.rst:320 +#: ../../index.rst:357 msgid "Save single geotiff of one ROI:" msgstr "" -#: ../../index.rst:327 +#: ../../index.rst:364 msgid "Batch save single geotiff of each ROI:" msgstr "" -#: ../../index.rst:333 -msgid "Refine DOM by raw images:" -msgstr "" - -#: ../../index.rst:395 +#: ../../index.rst:373 msgid "References" msgstr "" -#: ../../index.rst:398 +#: ../../index.rst:376 msgid "Publication" msgstr "" -#: ../../index.rst:400 +#: ../../index.rst:378 msgid "Please cite this paper if this project helps you:" msgstr "" -#: ../../index.rst:418 +#: ../../index.rst:396 msgid "Site packages" msgstr "" -#: ../../index.rst:420 +#: ../../index.rst:398 msgid "We also thanks the benefits from the following open source projects:" msgstr "" -#: ../../index.rst:422 +#: ../../index.rst:400 msgid "package main (**for users**)" msgstr "" -#: ../../index.rst:424 +#: ../../index.rst:402 msgid "numpy: `https://numpy.org/ `_" msgstr "" -#: ../../index.rst:425 +#: ../../index.rst:403 msgid "matplotlib: `https://matplotlib.org/ `_" msgstr "" -#: ../../index.rst:426 +#: ../../index.rst:404 msgid "" -"pillow: `https://github.com/python-pillow/Pillow `_" +"scikit-image: `https://github.com/scikit-image/scikit-image " +"`_" msgstr "" -#: ../../index.rst:427 +#: ../../index.rst:405 msgid "" "pyproj: `https://github.com/pyproj4/pyproj " "`_" msgstr "" -#: ../../index.rst:428 +#: ../../index.rst:406 msgid "" "tifffile: `https://github.com/cgohlke/tifffile " "`_" msgstr "" -#: ../../index.rst:429 +#: ../../index.rst:407 msgid "" "imagecodecs: `https://github.com/cgohlke/imagecodecs " "`_" msgstr "" -#: ../../index.rst:430 +#: ../../index.rst:408 msgid "" "shapely: `https://github.com/shapely/shapely " "`_" msgstr "" -#: ../../index.rst:431 +#: ../../index.rst:409 msgid "" "laspy/lasrs/lasio: `https://github.com/laspy/laspy " "`_" msgstr "" -#: ../../index.rst:432 +#: ../../index.rst:410 +msgid "" +"geojson: `https://github.com/jazzband/geojson " +"`_" +msgstr "" + +#: ../../index.rst:411 msgid "" "plyfile: `https://github.com/dranjan/python-plyfile " "`_" msgstr "" -#: ../../index.rst:433 +#: ../../index.rst:412 msgid "" "pyshp: `https://github.com/GeospatialPython/pyshp " "`_" msgstr "" -#: ../../index.rst:434 +#: ../../index.rst:413 msgid "" "tabulate: `https://github.com/astanin/python-tabulate " "`_" msgstr "" -#: ../../index.rst:435 +#: ../../index.rst:414 msgid "tqdm: `https://github.com/tqdm/tqdm `_" msgstr "" -#: ../../index.rst:436 +#: ../../index.rst:415 msgid "" "gdown: `https://github.com/wkentaro/gdown " "`_" msgstr "" -#: ../../index.rst:438 +#: ../../index.rst:417 msgid "package documentation (**for developers**)" msgstr "" -#: ../../index.rst:440 +#: ../../index.rst:419 msgid "" "sphinx: `https://github.com/sphinx-doc/sphinx `_" msgstr "" -#: ../../index.rst:441 +#: ../../index.rst:420 msgid "" "nbsphinx: `https://github.com/spatialaudio/nbsphinx " "`_" msgstr "" -#: ../../index.rst:442 +#: ../../index.rst:421 msgid "" "sphinx-gallery: `https://github.com/sphinx-gallery/sphinx-gallery " "`_" msgstr "" -#: ../../index.rst:443 +#: ../../index.rst:422 msgid "" "sphinx-inline-tabs: `https://github.com/pradyunsg/sphinx-inline-tabs " "`_" msgstr "" -#: ../../index.rst:444 +#: ../../index.rst:423 msgid "" "sphinx-intl: `https://github.com/sphinx-doc/sphinx-intl " "`_" msgstr "" -#: ../../index.rst:445 +#: ../../index.rst:424 msgid "" "sphinx-rtc-theme: `https://github.com/readthedocs/sphinx_rtd_theme " "`_" msgstr "" -#: ../../index.rst:446 +#: ../../index.rst:425 msgid "" "furo: `https://github.com/pradyunsg/furo " "`_" msgstr "" -#: ../../index.rst:448 +#: ../../index.rst:427 msgid "package testing and releasing (**for developers**)" msgstr "" -#: ../../index.rst:450 +#: ../../index.rst:429 msgid "" "pytest: `https://github.com/pytest-dev/pytest `_" msgstr "" -#: ../../index.rst:451 +#: ../../index.rst:430 msgid "" "packaging: `https://github.com/pypa/packaging " "`_" msgstr "" -#: ../../index.rst:452 +#: ../../index.rst:431 msgid "wheel: `https://github.com/pypa/wheel `_" msgstr "" -#: ../../index.rst:455 +#: ../../index.rst:434 msgid "Funding" msgstr "" -#: ../../index.rst:457 +#: ../../index.rst:436 msgid "This project was partially funded by:" msgstr "" -#: ../../index.rst:459 +#: ../../index.rst:438 msgid "" "the JST AIP Acceleration Research “Studies of CPS platform to raise big-" "data-driven AI agriculture”;" msgstr "" -#: ../../index.rst:460 +#: ../../index.rst:439 msgid "the SICORP Program JPMJSC16H2;" msgstr "" -#: ../../index.rst:461 +#: ../../index.rst:440 msgid "CREST Programs JPMJCR16O2 and JPMJCR16O1;" msgstr "" -#: ../../index.rst:462 +#: ../../index.rst:441 msgid "" "the International Science & Technology Innovation Program of Chinese " "Academy of Agricultural Sciences (CAASTIP);" msgstr "" -#: ../../index.rst:463 +#: ../../index.rst:442 msgid "the National Natural Science Foundation of China U19A2" msgstr "" @@ -561,3 +538,44 @@ msgstr "" #~ "DOM (raw forward dom -> raw4dom):" #~ msgstr "" +#~ msgid "GitHub code size in bytes" +#~ msgstr "" + +#~ msgid "Add one reconstructed plot" +#~ msgstr "" + +#~ msgid "Batch pool for multi-plots" +#~ msgstr "" + +#~ msgid "待处理" +#~ msgstr "" + +#~ msgid "" +#~ "Add the reconstruction projects to " +#~ "processing pools (different flight time " +#~ "for the same field):" +#~ msgstr "" + +#~ msgid "Then you can specify each chunk by:" +#~ msgstr "" + +#~ msgid "" +#~ "This function support refineing the bad" +#~ " quality DOM regions by corresponding " +#~ "raw images, at the mean time, if" +#~ " provided, converting the polygons on " +#~ "raw images back to the DOM with" +#~ " geo-coordinates." +#~ msgstr "" + +#~ msgid "And save the image results to files:" +#~ msgstr "" + +#~ msgid "Refine DOM by raw images:" +#~ msgstr "" + +#~ msgid "" +#~ "pillow: `https://github.com/python-pillow/Pillow " +#~ "`_" +#~ msgstr "" + diff --git a/docs/locale/ja/LC_MESSAGES/install.po b/docs/locale/ja/LC_MESSAGES/install.po index b4aee6a..bbfce03 100644 --- a/docs/locale/ja/LC_MESSAGES/install.po +++ b/docs/locale/ja/LC_MESSAGES/install.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: EasyIDP \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-06 19:18+0900\n" +"POT-Creation-Date: 2024-08-20 13:46+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.1\n" +"Generated-By: Babel 2.15.0\n" #: ../../install.rst:5 msgid "Install EasyIDP" @@ -51,41 +51,49 @@ msgstr "" msgid "Windows 11 (64-bit)" msgstr "" +#: ../../install.rst:21 +msgid "macOS 10.15+" +msgstr "" + #: ../../install.rst:22 +msgid "Manjaro" +msgstr "" + +#: ../../install.rst:24 msgid "" "The following operating system should also works, but have not been " "tested:" msgstr "" -#: ../../install.rst:24 +#: ../../install.rst:26 msgid "Ubuntu 18.04+" msgstr "" -#: ../../install.rst:25 -msgid "macOS 10.15+" +#: ../../install.rst:27 +msgid "ArchLinux" msgstr "" -#: ../../install.rst:27 +#: ../../install.rst:30 msgid "" "Using this package requires basic Python programming knowledge, including" " basic python gramma and package installation." msgstr "" -#: ../../install.rst:31 +#: ../../install.rst:34 msgid "Install from PyPI" msgstr "" -#: ../../install.rst:33 +#: ../../install.rst:36 msgid "" "Here assuming the user has python3 and pip installed in the computer, and" " in the command line, the following operation works:" msgstr "" -#: ../../install.rst:42 +#: ../../install.rst:45 msgid "Then install the package by:" msgstr "" -#: ../../install.rst:50 +#: ../../install.rst:53 msgid "" "In general, we recommend using a `virtual environment `_ or `conda environment " @@ -93,56 +101,56 @@ msgid "" "conflict with your local environment." msgstr "" -#: ../../install.rst:54 +#: ../../install.rst:57 msgid "Please refer :doc:`backgrounds/virtualenv` for more details." msgstr "" -#: ../../install.rst:56 +#: ../../install.rst:59 msgid "" "For Linux users, depending on the configurations, ``pip3`` may be needed " "for Python 3, or the ``--user`` option may need to be used to avoid " "permission issues. For example:" msgstr "" -#: ../../install.rst:70 +#: ../../install.rst:73 msgid "" "For users in China, it is recommended to use Tsinghua source to " "accelerate the download speed:" msgstr "" -#: ../../install.rst:79 +#: ../../install.rst:82 msgid "Using from source code" msgstr "" -#: ../../install.rst:81 +#: ../../install.rst:84 msgid "" "If you need to make some changes to the source code (e.g. fix bugs) and " "want it work immediately (rather than waiting for offical fix). You can " "also using from the source code directly." msgstr "" -#: ../../install.rst:84 +#: ../../install.rst:87 msgid "" "Please ensure you have uninstalled the pypi easyidp in your current " "environment:" msgstr "" -#: ../../install.rst:90 +#: ../../install.rst:93 msgid "and need to restart python to make changes taking effects." msgstr "" -#: ../../install.rst:93 +#: ../../install.rst:96 msgid "" "Assuming the source package was downloaded in " "``C:\\path\\to\\source\\code\\EasyIDP`` and the ``code`` folder has the " "following files:" msgstr "" -#: ../../install.rst:105 +#: ../../install.rst:108 msgid "Then you can used the following code to manual import easyidp package:" msgstr "" -#: ../../install.rst:114 +#: ../../install.rst:117 msgid "Or install to your virtual environment by:" msgstr "" diff --git a/docs/locale/ja/LC_MESSAGES/jupyter.po b/docs/locale/ja/LC_MESSAGES/jupyter.po index 44e7020..8fb0efd 100644 --- a/docs/locale/ja/LC_MESSAGES/jupyter.po +++ b/docs/locale/ja/LC_MESSAGES/jupyter.po @@ -8,241 +8,826 @@ msgid "" msgstr "" "Project-Id-Version: EasyIDP \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-24 20:37+0900\n" +"POT-Creation-Date: 2024-08-20 13:46+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.15.0\n" -#: ../../jupyter/crop_and_backward.ipynb:9 -msgid "Crop and backward projection" +#: ../../jupyter/backward_projection.ipynb:9 +#, fuzzy +msgid "Backward Projection" msgstr "クロップ&逆投影" -#: ../../jupyter/crop_and_backward.ipynb:21 -msgid "Package and Data Prepare" +#: ../../jupyter/backward_projection.ipynb:11 +msgid "" +"The example explains how to use EasyIDP to find the corresponding " +"position of ROI on the origial UAV images." +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:17 +msgid "|ab4b88df68534ecbae55217f7ae8d503|" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:23 +#: ../../jupyter/backward_projection.ipynb:96 +#: ../../jupyter/backward_projection.ipynb:635 +#: ../../jupyter/backward_projection.ipynb:1064 +#: ../../jupyter/crop_outputs.ipynb:23 ../../jupyter/crop_outputs.ipynb:96 +#: ../../jupyter/get_z_from_dsm.ipynb:23 ../../jupyter/load_roi.ipynb:23 +msgid "lotus plot" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:36 ../../jupyter/load_roi.ipynb:36 +msgid "Package and data prepare" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:23 +#: ../../jupyter/backward_projection.ipynb:38 msgid "The most common way to import easyidp package is:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:44 -msgid "And then using the Lotus dataset as example" +#: ../../jupyter/backward_projection.ipynb:61 +#: ../../jupyter/crop_outputs.ipynb:61 +msgid "" +"If you run for the first time, it will download 3.3GB dataset " +"automatically from Google Drive, please refer to `Data " +"<../python_api/data.rst>`__ for more details." +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:73 +msgid "Read ROI from Shapefile" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:46 +#: ../../jupyter/backward_projection.ipynb:75 msgid "" -"It will download 3.3GB from Google Drive for the first time, please " -"ensure your have enough disk space (>10GB) in your system cache disk." +"Then open the shapefile ``plot.shp``, the shp file looks like (red " +"polygons):" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:90 +msgid "|eb7d116f9684456799a13d7648778630|" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:48 -msgid "You can using the following code to check where it downloads to:" +#: ../../jupyter/backward_projection.ipynb:168 +msgid "Then check if it loads as expected:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:54 -msgid "It will call your system default file manager to show the folder." +#: ../../jupyter/backward_projection.ipynb:290 +msgid "Get height (z) values from DSM" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:75 +#: ../../jupyter/backward_projection.ipynb:292 msgid "" -"If you run for the first time, it will download dataset automatically " -"from google drive:" +"The ROI from shapefile is only 2D coordinate, however, to do backward " +"projection, the ROI should be 3D coordainte, the missing height values " +"can be obtianed from DSM" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:85 -msgid "Then the used file path can be obtained by:" +#: ../../jupyter/backward_projection.ipynb:298 +#: ../../jupyter/crop_outputs.ipynb:571 +msgid "Future work" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:96 -msgid "Please check ``Python API > Data`` for more details." +#: ../../jupyter/backward_projection.ipynb:300 +msgid "" +"Getting Z values from point cloud will be supported in the future, in " +"this case, if only need backward projection (do image analyze on origial " +"images instead of low quality geotiff), the 3D reconstuction can stop at " +"making dense point cloud, no need to run the later DOM and DSM step." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:108 -msgid "Read ROI from Shapefile" +#: ../../jupyter/backward_projection.ipynb:350 +msgid "And check the values of ROI" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:110 +#: ../../jupyter/backward_projection.ipynb:471 msgid "" -"Then open the shapefile ``plot.shp``, the shp file looks like (red " -"polygons):" +"We can notice, the roi x and y values also changed. Because the ROI shp " +"geo-coord is EPSG::4326 while the DSM is EPSG::32654." +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:477 +#: ../../jupyter/crop_outputs.ipynb:282 ../../jupyter/crop_outputs.ipynb:362 +#: ../../jupyter/crop_outputs.ipynb:608 +msgid "See also" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:479 +msgid "" +"For more details about the controls to this function, please refer to " +"`Get Height(z) Values from DSM `__" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:495 +#, fuzzy +msgid "Read 3D reconstuction project and backward projection" +msgstr "クロップ&逆投影" + +#: ../../jupyter/backward_projection.ipynb:497 +msgid "For metashape project:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:-1 -msgid "lotus_shp" +#: ../../jupyter/backward_projection.ipynb:518 +msgid "For pix4d project:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:124 -msgid "First, need to check which column of shapefile should be used as key:" +#: ../../jupyter/backward_projection.ipynb:541 +#, fuzzy +msgid "And then do the backward projection by:" +msgstr "クロップ&逆投影" + +#: ../../jupyter/backward_projection.ipynb:591 +msgid "or" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:611 +#: ../../jupyter/backward_projection.ipynb:1040 +msgid "Note" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:613 +#: ../../jupyter/backward_projection.ipynb:1042 +msgid "You can save the results (json and cropped png) to given folder by:" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:619 +#: ../../jupyter/backward_projection.ipynb:1048 +msgid "And will get the following results in the folder:" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:625 +msgid "|2ae8c77ac462495c8c24fe86c5bb0e82|" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:193 +#: ../../jupyter/backward_projection.ipynb:647 msgid "" -"We can see, it only contains one column (-1 is the index), here we pass " -"``0`` or ``\"plot_id\"`` to ``name_field`` param to set it as index." +"The structure of output ``img_dict`` is 2 layers dictionary. The first " +"layer is roi id, the second layer is image name " +"(``out_dict['roi_id']['image_name']``)." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:264 -msgid "Then check if it loads as expected:" +#: ../../jupyter/backward_projection.ipynb:649 +msgid "" +"You can find all available images with specified roi (plot) (e.g. roi " +"named ‘N1W1’) by:" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:676 +msgid "For example, find the roi named ‘N1W1’ on image ‘IMG_3457’ by:" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:734 +msgid "This is the 2D coordinates that roi on the image pixels" +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:736 +msgid "The recommended ‘for loops’ for itering items:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:357 -msgid "Or you can also reference it by index:" +#: ../../jupyter/backward_projection.ipynb:764 +msgid "Preview the results:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:415 -msgid "Then get the height value from DSM" +#: ../../jupyter/backward_projection.ipynb:818 +#: ../../jupyter/backward_projection.ipynb:1209 +msgid "Or check all results:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:500 +#: ../../jupyter/backward_projection.ipynb:923 +#: ../../jupyter/backward_projection.ipynb:1314 msgid "" -"We can notice, the roi x and y values also changed. Because the ROI shp " -"geo-coord is EPSG::4326 while the DSM is EPSG::32654" +"Recommend using ``ms.show_roi_on_img(..., save_as=\"preview_all.png\")`` " +"to saving to local disk and checking the clear figure." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:502 -msgid "if you want keep the x and y value, you can:" +#: ../../jupyter/backward_projection.ipynb:935 +msgid "Find the best backward image" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:514 +#: ../../jupyter/backward_projection.ipynb:937 msgid "" -"But it is highly recommended to use the same CRS with the DOM/DSM, " -"otherwise will raise ValueErrors in the later use." +"You can notice that for each ROI, it will backword projected to several " +"raw images:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:545 -msgid "Read and crop DOM" +#: ../../jupyter/backward_projection.ipynb:983 +msgid "" +"How to find the best 3 or 5 images? Here you can calculate the distance " +"from the image to the ROI, here we assume the shorter the better (idealy," +" UAV image just above the ROI region, the ROI is in the image center)." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:566 -msgid "Check the values:" +#: ../../jupyter/backward_projection.ipynb:1054 +msgid "|6ca31a9fcc4d496293e850a048ff7422|" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:684 -msgid "Crop the DOM by ROI:" +#: ../../jupyter/backward_projection.ipynb:1153 +msgid "" +"Here is the best 3 image that match “distance from ROI to image” < 10m, " +"and the first one is the closest." +msgstr "" + +#: ../../jupyter/backward_projection.ipynb:1155 +msgid "Check the result:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:9 +msgid "Crop DOM/DSM/PCD by ROI" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:11 +msgid "" +"Using region of interest (ROI, e.g. plot boundary), cropping each of them" +" from large digital orthomosaic (DOM), digital surface model (DSM), and " +"point cloud of whole field, without using any GIS or point cloud " +"processing software." +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:17 +msgid "|ab4ac817c101442987d00d4e7e66b56e|" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:36 +msgid "Package and data prepare." +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:38 +msgid "The easiest way to import easyidp package and using the demo exmaple is:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:757 -msgid "It has the same key as the ROI." +#: ../../jupyter/crop_outputs.ipynb:73 +msgid "Read ROI from shapefile" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:759 -msgid "And to visualize the cropped results:" +#: ../../jupyter/crop_outputs.ipynb:75 +msgid "" +"The following code will load and open the plot boundary shapefile in the " +"Lotus Dataset, the shp file looks like (red polygons):" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:90 +msgid "|a7351b371efc48f8a2787d7353f88b95|" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:284 +msgid "" +"For more details about the parameter when loading shapefile, please refer" +" to `Load ROI from shapefile `__, or python API " +"`easyidp.ROI <../python_api/manualdoc/easyidp.roi.ROI.rst>`__, and " +"`easyidp.shp.read_shp " +"<../python_api/autodoc/easyidp.shp.read_shp.rst>`__." +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:300 +msgid "Read and crop geotiff (DOM/DSM)" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:302 +msgid "First, open the DOM geotiff file by:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:364 +msgid "" +"The GeoTiff is easyidp defined class contains several required " +"information. Please check python API `easyidp.GeoTiff " +"<../python_api/autodoc/easyidp.geotiff.GeoTiff.rst>`__ for more " +"information" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:379 +msgid "" +"However, in this case, the ROI and GeoTiff do not share the same geo-" +"coordinate:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:858 +#: ../../jupyter/crop_outputs.ipynb:427 +msgid "" +"Hence need to transform the ROI to the same CRS as GeoTiff, for more " +"details please refer `Load ROI from shapefile `__" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:448 +msgid "" +"Then using the following function to crop each ROI (plot) from whole " +"field GeoTIff:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:494 +msgid "" +"The output ``dom_parts`` is a dictionary, using plot label as keys and " +"cropped imarray as values:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:559 msgid "" "It you want to save the cropped GeoTiff, please pass the ``save_folder`` " "parameter when cropping" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:864 +#: ../../jupyter/crop_outputs.ipynb:565 msgid "" "It will save all cropped sections to GeoTiff files with geo-offset (you " -"can overlap the cropped DOM perfectly on the original DOM)" +"can overlap the cropped DOM almost perfectly on the original DOM)" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:866 +#: ../../jupyter/crop_outputs.ipynb:573 msgid "" -"However, you can not save the outputs ``dom_parts[\"N1W1\"]`` with geo-" -"offset, it can only be save as a common image via ``plt.imsave()``." +"Currently can not just save the single output ``dom_parts[\"N1W1\"]`` to " +"standard GeoTiff file with correct geo-position without previoud " +"``save_folder`` batch saving, but in the future will support save such " +"file directly via " +"``dom_part[\"N1W1\"].save(\"path\\to\\save\\N1W1.tif\")``" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:588 +msgid "The step to crop DSM is the same as DOM, ignored here." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:878 +#: ../../jupyter/crop_outputs.ipynb:600 msgid "Read and crop point cloud" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:880 +#: ../../jupyter/crop_outputs.ipynb:602 +msgid "The point cloud also use the same process like GeoTIff" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:610 msgid "" -"Crop the PCD by ROI: (will cost a half minuts to operate on the large " -"point cloud)" +"The PointCloud is easyidp defined class contains several required " +"information. Please check python API `easyidp.PointCloud " +"<../python_api/autodoc/easyidp.pointcloud.PointCloud.rst>`__ for more " +"information" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:635 +msgid "Check the point cloud values:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1074 +#: ../../jupyter/crop_outputs.ipynb:702 +msgid "And cropping:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:708 ../../jupyter/load_roi.ipynb:390 +#: ../../jupyter/load_roi.ipynb:713 ../../jupyter/load_roi.ipynb:2244 +msgid "Caution" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:710 +msgid "Please ensure the same CRS between ROI and PointCloud." +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:760 +msgid "" +"The output ``pcd_parts`` is a dictionary, using plot label as keys and " +"cropped point cloud as values:" +msgstr "" + +#: ../../jupyter/crop_outputs.ipynb:827 msgid "" "Similarly, you can pass the ``save_folder`` parameter to save the cropped" " point cloud" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1090 -msgid "Read SfM project and backward projection" +#: ../../jupyter/crop_outputs.ipynb:833 +msgid "Or your can save just one point cloud by:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1102 -msgid "For Metashape" +#: ../../jupyter/forward_projection.ipynb:9 +msgid "Forward Projection (simple draft demo)" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1455 -msgid "Preview the results:" +#: ../../jupyter/forward_projection.ipynb:130 +msgid "Then check the shp columns, name using [id] as the key of ROI" +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:385 +msgid "Check the results of DOM grid" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1501 -msgid "For Pix4D" +#: ../../jupyter/forward_projection.ipynb:502 +msgid "Check by QGIS:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1847 -msgid "Check the results:" +#: ../../jupyter/forward_projection.ipynb:504 +msgid "|4174f44172bf46ddafc22017afe8d957|" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1893 -msgid "Find the best backword image" +#: ../../jupyter/forward_projection.ipynb:506 +msgid "Snipaste_2022-09-10_13-01-25" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1895 +#: ../../jupyter/forward_projection.ipynb:518 +#, fuzzy +msgid "backward projection to raw images" +msgstr "クロップ&逆投影" + +#: ../../jupyter/forward_projection.ipynb:740 +msgid "Then find the closest raw image" +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:863 +msgid "Check the ROI on the DOM and on the raw respectively." +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:928 +msgid "For example, you detect the results on DJI_0500 is" +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:952 +msgid "Then check the bbox on the raw:" +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:1016 +msgid "Then calculate the inverse transform matrix from raw to DOM:" +msgstr "" + +#: ../../jupyter/forward_projection.ipynb:1253 +msgid "Preview the results on DOM:" +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:9 +msgid "Get Height (Z) Values from DSM" +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:11 msgid "" -"You can notice that for each ROI, it will backword projected to several " -"raw images:" +"This part introduces the parameters and controls to get height (or z) " +"values for ROI from Digital Surface Model (DSM) GeoTiff." +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:17 +msgid "|f326b319b71b4b0e8638aead8fffcac5|" +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:35 +msgid "To be continued" +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:46 +msgid "keep_crs and warnings" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:1941 +#: ../../jupyter/get_z_from_dsm.ipynb:57 msgid "" -"How to find the best 3 or 5 images? Here you can calculate the distance " -"from the image to the ROI, here we assume the shorter the better (idealy," -" UAV image just above the ROI region, the ROI is in the image center)." +"We can notice, the roi x and y values also changed. Because the ROI shp " +"geo-coord is EPSG::4326 while the DSM is EPSG::32654" +msgstr "" + +#: ../../jupyter/get_z_from_dsm.ipynb:59 +msgid "if you want keep the x and y value, you can:" msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:2068 +#: ../../jupyter/get_z_from_dsm.ipynb:71 msgid "" -"Here is the best 3 image that match “distance from ROI to image” < 10m, " -"and the first one is the closest." +"But it is highly recommended to use the same CRS with the DOM/DSM, " +"otherwise will raise ValueErrors in the later use." msgstr "" -#: ../../jupyter/crop_and_backward.ipynb:2070 -msgid "Check the result:" +#: ../../jupyter/load_roi.ipynb:9 +msgid "Load ROI from shapefile" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:11 +msgid "" +"This example shows how to open the shapefile ( ``*.shp`` ) as the " +"``easyidp.ROI`` objects." +msgstr "" + +#: ../../jupyter/load_roi.ipynb:17 +msgid "|772ba40e65734dde83745cd26045ccca|" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:38 +msgid "Using the following code to load easyidp package and demo dataset" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:61 +msgid "" +"If you run for the first time, it will download around 400MB dataset " +"automatically from Google Drive, please refer to `Data " +"<../python_api/data.rst>`__ for more details." +msgstr "" + +#: ../../jupyter/load_roi.ipynb:63 +msgid "Here are thee demo shapefiles used in this documents are:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:65 +msgid "``test_data.shp.lotus_shp``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:66 +msgid "``test_data.shp.utm53n_shp``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:67 +msgid "``test_data.shp.complex_shp``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:69 +msgid "Each variable provides the path to the ``*.shp`` file:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:116 +msgid "Deal with ESPG:4326 (longitude, latitude)" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:118 +msgid "The ``lotus_shp`` used the EPGS:4326 as the Geo-projection coordinates" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:189 +msgid "" +"Using this method to check the CRS (geo-projection coordinate) for that " +"shapefile:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:265 +msgid "And we can check the plot polygon boundary values by:" msgstr "" -#: ../../jupyter/raw2dom.ipynb:9 -msgid "Forward ROI from raw to DOM" +#: ../../jupyter/load_roi.ipynb:392 +msgid "" +"In the easyidp package, the ROI order is ``(longitude, latitude)``, while" +" for some other packages like ``pyproj``, ``shapely``, may using the " +"``(latitude, longitude)`` order, please pay attention to it when " +"transfering between packages" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:408 +msgid "Deal with UTM/Zone geo coordainte" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:410 +msgid "" +"The ``utm53_shp`` using another geo coordinate other than ``(longitude, " +"latitude)``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:481 +msgid "Then we can check the CRS (geo-coordinate) of this file:" msgstr "" -#: ../../jupyter/raw2dom.ipynb:11 +#: ../../jupyter/load_roi.ipynb:563 +msgid "And the plot polygon coordinate values:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:684 +msgid "" +"Under this coordinate, the unit is meter, and the X (the first column) is" +" the East-West (horizontal) direction, while the Y (the second column) is" +" the North-Sourth (vertical) direction. The axis order is the same with " +"``(longitude, latitude)``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:696 +msgid "Transform between CRS" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:698 msgid "" -"It is a often case that the DOM has lower quality than the original raw " -"images. And then we want link the image analysis resutls on the good " -"quality raw image back to the bad quality DOM. This example demonstrats " -"how this can be done by EasyIDP." +"In some cases, for example, not the same person who prepare the DOM and " +"shapefile, they do not share the same coordinate and have very different " +"polygon boundary values. So they can not put together directly and need " +"convertion." msgstr "" -#: ../../jupyter/raw2dom.ipynb:13 -msgid "Firstly, import the package and using our lotus dataset" +#: ../../jupyter/load_roi.ipynb:715 +msgid "" +"Although the EasyIDP support the transformation between different CRS, it" +" may have precision loss and require some computation time if the roi " +"number is huge." msgstr "" -#: ../../jupyter/raw2dom.ipynb:36 -msgid "Then load the DOM and metashape project into EasyIDP objects" +#: ../../jupyter/load_roi.ipynb:717 +msgid "" +"It is recommended to ensure the shp and DOM/DSM/PCD share the same CRS " +"when preparing them." msgstr "" -#: ../../jupyter/raw2dom.ipynb:60 -msgid "Split dom to several grids with buffer" +#: ../../jupyter/load_roi.ipynb:732 +msgid "" +"For example, in the lotus case, it uses the EPSG:4326, while the DOM/DSM " +"uses the UTM/Zone." msgstr "" -#: ../../jupyter/raw2dom.ipynb:62 +#: ../../jupyter/load_roi.ipynb:883 msgid "" -"Instead of forward projecting the results from raw to DOM directly. Here " -"we do the backwad projection from DOM to raw, and calculate the " -"transformation matrix of current grid, then calculate the inverse matrix " -"to get results from raw to DOM." +"Hence need to do the CRS transformation to match them. It is more " +"recommended to transfer ROI because it is only the coordinate numbers, " +"much easier to transfer than the GeoTiff are pixel matrix." +msgstr "" + +#: ../../jupyter/load_roi.ipynb:885 +msgid "Before transfer, the plot coordinate looks like this:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1006 +msgid "And apply the transfer:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1027 +msgid "Now the CRS of ROI has been changed:" msgstr "" +#: ../../jupyter/load_roi.ipynb:1112 +msgid "And also the coordinate values:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1234 +msgid "Change the ROI labels" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1236 +msgid "You have must notice the ``name_field`` value when opening the shapefile" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1242 +msgid "" +"In this section, more details about this parameter and other controls " +"will be introduced." +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1253 +msgid "" +"For some shapefile, it is not encoded in ``utf-8``, and the default " +"loading may fail:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1357 +msgid "" +"By default, if ``name_field`` not given, it will using the first number " +"id as label" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1591 +msgid "We can specify the ‘MASSIFID’ as the label instead" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1662 +msgid "Or the equal effects by colume id:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1668 ../../jupyter/load_roi.ipynb:1890 +msgid "Now the label has been changed:" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1813 +msgid "" +"Or you can combine several columns together by giving a list " +"``name_field=['CROPTYPE', 'MASSIFID']``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:1884 +msgid "Or the equal effects by a list of colume id ``name_field=[2, 1]``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:2035 +msgid "Or even add the colume title into it by giving ``include_title=True``" +msgstr "" + +#: ../../jupyter/load_roi.ipynb:2246 +msgid "" +"Only the colume with unique values should be used as the ROI label, " +"otherwise has the risk that later duplicated label overwrites previous " +"label. The easyidp could handle such case and raise an Error." +msgstr "" + +#~ msgid "Package and Data Prepare" +#~ msgstr "" + +#~ msgid "And then using the Lotus dataset as example" +#~ msgstr "" + +#~ msgid "" +#~ "It will download 3.3GB from Google " +#~ "Drive for the first time, please " +#~ "ensure your have enough disk space " +#~ "(>10GB) in your system cache disk." +#~ msgstr "" + +#~ msgid "You can using the following code to check where it downloads to:" +#~ msgstr "" + +#~ msgid "It will call your system default file manager to show the folder." +#~ msgstr "" + +#~ msgid "" +#~ "If you run for the first time, " +#~ "it will download dataset automatically " +#~ "from google drive:" +#~ msgstr "" + +#~ msgid "Then the used file path can be obtained by:" +#~ msgstr "" + +#~ msgid "Please check ``Python API > Data`` for more details." +#~ msgstr "" + +#~ msgid "lotus_shp" +#~ msgstr "" + +#~ msgid "First, need to check which column of shapefile should be used as key:" +#~ msgstr "" + +#~ msgid "" +#~ "We can see, it only contains one" +#~ " column (-1 is the index), here " +#~ "we pass ``0`` or ``\"plot_id\"`` to " +#~ "``name_field`` param to set it as " +#~ "index." +#~ msgstr "" + +#~ msgid "Or you can also reference it by index:" +#~ msgstr "" + +#~ msgid "Then get the height value from DSM" +#~ msgstr "" + +#~ msgid "Read and crop DOM" +#~ msgstr "" + +#~ msgid "Check the values:" +#~ msgstr "" + +#~ msgid "Crop the DOM by ROI:" +#~ msgstr "" + +#~ msgid "It has the same key as the ROI." +#~ msgstr "" + +#~ msgid "And to visualize the cropped results:" +#~ msgstr "" + +#~ msgid "" +#~ "It will save all cropped sections " +#~ "to GeoTiff files with geo-offset " +#~ "(you can overlap the cropped DOM " +#~ "perfectly on the original DOM)" +#~ msgstr "" + +#~ msgid "" +#~ "However, you can not save the " +#~ "outputs ``dom_parts[\"N1W1\"]`` with geo-" +#~ "offset, it can only be save as " +#~ "a common image via ``plt.imsave()``." +#~ msgstr "" + +#~ msgid "" +#~ "Crop the PCD by ROI: (will cost" +#~ " a half minuts to operate on " +#~ "the large point cloud)" +#~ msgstr "" + +#~ msgid "Read SfM project and backward projection" +#~ msgstr "" + +#~ msgid "For Metashape" +#~ msgstr "" + +#~ msgid "For Pix4D" +#~ msgstr "" + +#~ msgid "Check the results:" +#~ msgstr "" + +#~ msgid "Find the best backword image" +#~ msgstr "" + +#~ msgid "Forward ROI from raw to DOM" +#~ msgstr "" + +#~ msgid "" +#~ "It is a often case that the " +#~ "DOM has lower quality than the " +#~ "original raw images. And then we " +#~ "want link the image analysis resutls " +#~ "on the good quality raw image back" +#~ " to the bad quality DOM. This " +#~ "example demonstrats how this can be " +#~ "done by EasyIDP." +#~ msgstr "" + +#~ msgid "Firstly, import the package and using our lotus dataset" +#~ msgstr "" + +#~ msgid "Then load the DOM and metashape project into EasyIDP objects" +#~ msgstr "" + +#~ msgid "Split dom to several grids with buffer" +#~ msgstr "" + +#~ msgid "" +#~ "Instead of forward projecting the " +#~ "results from raw to DOM directly. " +#~ "Here we do the backwad projection " +#~ "from DOM to raw, and calculate the" +#~ " transformation matrix of current grid, " +#~ "then calculate the inverse matrix to " +#~ "get results from raw to DOM." +#~ msgstr "" + diff --git a/docs/locale/ja/LC_MESSAGES/python_api.po b/docs/locale/ja/LC_MESSAGES/python_api.po index 1a64e84..be38cc2 100644 --- a/docs/locale/ja/LC_MESSAGES/python_api.po +++ b/docs/locale/ja/LC_MESSAGES/python_api.po @@ -8,82 +8,211 @@ msgid "" msgstr "" "Project-Id-Version: EasyIDP \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-06 19:18+0900\n" +"POT-Creation-Date: 2024-08-20 13:46+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.1\n" +"Generated-By: Babel 2.15.0\n" #: ../../python_api/autodoc/easyidp.cvtools.imarray_crop.rst:2 msgid "easyidp.cvtools.imarray\\_crop" msgstr "" -#: ../../python_api/cvtools.rst:19::1 +#: ../../python_api/cvtools.rst:20::1 #: easyidp.cvtools.imarray_crop:1 of msgid "crop a given ndarray image by given polygon pixel positions" msgstr "" #: easyidp.cvtools.imarray_crop easyidp.cvtools.poly2mask +#: easyidp.cvtools.rgb2gray easyidp.data.TestData.__init__ #: easyidp.data.url_checker easyidp.data.user_data_dir -#: easyidp.geotiff.GeoTiff.crop easyidp.geotiff.GeoTiff.crop_polygon -#: easyidp.geotiff.GeoTiff.crop_rectangle easyidp.geotiff.GeoTiff.math_polygon -#: easyidp.geotiff.GeoTiff.point_query easyidp.geotiff.GeoTiff.read_geotiff -#: easyidp.geotiff.GeoTiff.save_geotiff easyidp.geotiff.geo2pixel +#: easyidp.geotiff.GeoTiff.__init__ easyidp.geotiff.GeoTiff.crop_polygon +#: easyidp.geotiff.GeoTiff.crop_rectangle easyidp.geotiff.GeoTiff.crop_rois +#: easyidp.geotiff.GeoTiff.geo2pixel easyidp.geotiff.GeoTiff.pixel2geo +#: easyidp.geotiff.GeoTiff.point_query easyidp.geotiff.GeoTiff.polygon_math +#: easyidp.geotiff.GeoTiff.read_geotiff easyidp.geotiff.geo2pixel #: easyidp.geotiff.get_header easyidp.geotiff.get_imarray -#: easyidp.geotiff.pixel2geo easyidp.geotiff.tifffile_crop -#: easyidp.jsonfile.dict2json easyidp.jsonfile.read_json -#: easyidp.jsonfile.save_json easyidp.jsonfile.write_json -#: easyidp.pointcloud.PointCloud.crop -#: easyidp.pointcloud.PointCloud.crop_point_cloud easyidp.pointcloud.read_las -#: easyidp.pointcloud.write_ply easyidp.roi.ROI.back2raw easyidp.roi.ROI.crop -#: easyidp.roi.ROI.get_z_from_dsm easyidp.roi.ROI.open easyidp.roi.ROI.read_shp -#: easyidp.roi.read_cc_txt easyidp.shp.convert_proj easyidp.shp.read_proj -#: easyidp.shp.read_shp easyidp.shp.show_shp_fields of +#: easyidp.geotiff.pixel2geo easyidp.geotiff.point_query +#: easyidp.geotiff.save_geotiff easyidp.geotiff.tifffile_crop +#: easyidp.geotools.convert_proj easyidp.geotools.convert_proj3d +#: easyidp.geotools.is_single_point easyidp.jsonfile.dict2json +#: easyidp.jsonfile.read_geojson easyidp.jsonfile.read_json +#: easyidp.jsonfile.save_json easyidp.jsonfile.show_geojson_fields +#: easyidp.jsonfile.write_json easyidp.metashape.Metashape.__init__ +#: easyidp.metashape.Metashape.back2raw +#: easyidp.metashape.Metashape.back2raw_crs +#: easyidp.metashape.Metashape.change_photo_folder +#: easyidp.metashape.Metashape.get_photo_position +#: easyidp.metashape.Metashape.open_chunk +#: easyidp.metashape.Metashape.open_project +#: easyidp.metashape.Metashape.show_roi_on_img +#: easyidp.metashape.Metashape.sort_img_by_distance +#: easyidp.metashape.apply_transform_matrix easyidp.metashape.read_chunk_zip +#: easyidp.metashape.read_project_zip easyidp.pix4d.Pix4D.__init__ +#: easyidp.pix4d.Pix4D.back2raw easyidp.pix4d.Pix4D.back2raw_crs +#: easyidp.pix4d.Pix4D.get_photo_position easyidp.pix4d.Pix4D.load_dom +#: easyidp.pix4d.Pix4D.load_dsm easyidp.pix4d.Pix4D.load_pcd +#: easyidp.pix4d.Pix4D.open_project easyidp.pix4d.Pix4D.show_roi_on_img +#: easyidp.pix4d.Pix4D.sort_img_by_distance +#: easyidp.pix4d.parse_p4d_param_folder easyidp.pix4d.parse_p4d_project +#: easyidp.pix4d.read_cam_ssk easyidp.pix4d.read_campos_geo +#: easyidp.pix4d.read_ccp easyidp.pix4d.read_cicp easyidp.pix4d.read_pmat +#: easyidp.pix4d.read_xyz easyidp.pointcloud.PointCloud.__init__ +#: easyidp.pointcloud.PointCloud.crop_point_cloud +#: easyidp.pointcloud.PointCloud.crop_rois +#: easyidp.pointcloud.PointCloud.read_point_cloud +#: easyidp.pointcloud.PointCloud.save +#: easyidp.pointcloud.PointCloud.update_offset_value +#: easyidp.pointcloud.PointCloud.write_point_cloud easyidp.pointcloud.read_las +#: easyidp.pointcloud.read_laz easyidp.pointcloud.read_ply +#: easyidp.pointcloud.write_las easyidp.pointcloud.write_laz +#: easyidp.pointcloud.write_ply easyidp.reconstruct.Calibration.calibrate +#: easyidp.reconstruct.Sensor.in_img_boundary +#: easyidp.reconstruct.save_back2raw_json_and_png +#: easyidp.reconstruct.sort_img_by_distance easyidp.roi.ROI.__init__ +#: easyidp.roi.ROI.back2raw easyidp.roi.ROI.change_crs easyidp.roi.ROI.crop +#: easyidp.roi.ROI.get_z_from_dsm easyidp.roi.ROI.open +#: easyidp.roi.ROI.read_geojson easyidp.roi.ROI.read_labelme_json +#: easyidp.roi.ROI.read_shp easyidp.roi.read_cc_txt easyidp.shp.read_proj +#: easyidp.shp.read_shp easyidp.shp.show_shp_fields +#: easyidp.visualize.draw_backward_one_roi +#: easyidp.visualize.draw_polygon_on_img of msgid "参数" msgstr "" #: easyidp.cvtools.imarray_crop:3 of -msgid "the image data, shape = (height,width)" +msgid "" +"| the image data in numpy ndarray | if the shape is (height, width), view" +" it as DSM data, the data type should be float. | if the shape is " +"(height, width, dimen), view it as RGB DOM data (dimen=3 means RGB and " +"dimen=4 means RGBA). | the data type for this case should be either " +"0-1 float, or 0-255 int. .. caution:: Currently, the EasyIDP " +"package does not have the ability to handle multi-spectral image data " +"directly. If you really want to use this function to crop multi-" +"spectral image with multiple layers, please send each layer one by one." +" For example, you have a multi-spectral imarray with 6 bands: " +".. code-block:: python >>> multi_spect_imarray.shape " +"(1028, 800, 6) Then using the following for loops to iteratively " +"process each band (please modify it by yourself, can not guarantee it" +" works directly) .. code-block:: python >>> band_container " +"= [] >>> for i in range(0, 6): >>> band = " +"multi_spect_imarray[:,:,i] >>> out, offset = " +"idp.cvtools.imarray_crop(band, polygon_hv, " +"outside_value=your_geotiff.header['nodata']) >>> " +"band_container.append(out) >>> final_out = " +"np.dstack(band_container)" +msgstr "" + +#: easyidp.cvtools.imarray_crop of +msgid "the image data in numpy ndarray" +msgstr "" + +#: easyidp.cvtools.imarray_crop of +msgid "" +"if the shape is (height, width), view it as DSM data, the data type " +"should be float." +msgstr "" + +#: easyidp.cvtools.imarray_crop of +msgid "" +"if the shape is (height, width, dimen), view it as RGB DOM data (dimen=3 " +"means RGB and dimen=4 means RGBA)." +msgstr "" + +#: easyidp.cvtools.imarray_crop of +msgid "the data type for this case should be either 0-1 float, or 0-255 int." +msgstr "" + +#: easyidp.cvtools.imarray_crop:10 of +msgid "" +"Currently, the EasyIDP package does not have the ability to handle multi-" +"spectral image data directly. If you really want to use this function to " +"crop multi-spectral image with multiple layers, please send each layer " +"one by one." +msgstr "" + +#: easyidp.cvtools.imarray_crop:13 of +msgid "For example, you have a multi-spectral imarray with 6 bands:" +msgstr "" + +#: easyidp.cvtools.imarray_crop:20 of +msgid "" +"Then using the following for loops to iteratively process each band " +"(please modify it by yourself, can not guarantee it works directly)" msgstr "" -#: easyidp.cvtools.imarray_crop:5 of +#: easyidp.cvtools.imarray_crop:32 of msgid "" -"pixel position of boundary point, (horizontal, vertical) which reverted " -"the imarray axis 0 to 1" +"| pixel position of boundary point, the order is (horizontal, vertical) " +".. caution:: it is reverted to the numpy imarray axis. horzontal" +" = numpy axis 1, vertical = numpy axis 0." msgstr "" -#: easyidp.cvtools.imarray_crop:7 of +#: easyidp.cvtools.imarray_crop of +msgid "pixel position of boundary point, the order is (horizontal, vertical)" +msgstr "" + +#: easyidp.cvtools.imarray_crop:36 of +msgid "" +"it is reverted to the numpy imarray axis. horzontal = numpy axis 1, " +"vertical = numpy axis 0." +msgstr "" + +#: easyidp.cvtools.imarray_crop:39 of +msgid "" +"| specify exact value outside the polgyon, default 0. | But for some DSM " +"geotiff, it could be -10000.0, depends on the geotiff meta infomation" +msgstr "" + +#: easyidp.cvtools.imarray_crop of +msgid "specify exact value outside the polgyon, default 0." +msgstr "" + +#: easyidp.cvtools.imarray_crop of msgid "" -"specify exact value outside the polgyon, default 0 But for some DSM " -"geotiff, it can be -10000.0" +"But for some DSM geotiff, it could be -10000.0, depends on the geotiff " +"meta infomation" msgstr "" #: easyidp.cvtools.imarray_crop easyidp.cvtools.poly2mask -#: easyidp.data.user_data_dir easyidp.geotiff.GeoTiff.crop +#: easyidp.cvtools.rgb2gray easyidp.data.user_data_dir #: easyidp.geotiff.GeoTiff.crop_polygon easyidp.geotiff.GeoTiff.crop_rectangle -#: easyidp.geotiff.GeoTiff.point_query easyidp.geotiff.geo2pixel -#: easyidp.geotiff.get_header easyidp.geotiff.get_imarray -#: easyidp.geotiff.tifffile_crop easyidp.pointcloud.PointCloud.crop -#: easyidp.pointcloud.PointCloud.crop_point_cloud easyidp.pointcloud.read_las -#: easyidp.roi.ROI.crop easyidp.shp.read_proj easyidp.shp.read_shp of +#: easyidp.geotiff.GeoTiff.crop_rois easyidp.geotiff.GeoTiff.point_query +#: easyidp.geotiff.geo2pixel easyidp.geotiff.get_header +#: easyidp.geotiff.get_imarray easyidp.geotiff.point_query +#: easyidp.geotiff.tifffile_crop easyidp.geotools.is_single_point +#: easyidp.jsonfile.read_geojson easyidp.metashape.Metashape.back2raw_crs +#: easyidp.metashape.Metashape.get_photo_position +#: easyidp.metashape.Metashape.sort_img_by_distance +#: easyidp.metashape.apply_transform_matrix easyidp.metashape.read_project_zip +#: easyidp.pix4d.Pix4D.back2raw_crs easyidp.pix4d.Pix4D.get_photo_position +#: easyidp.pix4d.Pix4D.sort_img_by_distance +#: easyidp.pix4d.parse_p4d_param_folder easyidp.pix4d.parse_p4d_project +#: easyidp.pix4d.read_cam_ssk easyidp.pix4d.read_campos_geo +#: easyidp.pix4d.read_ccp easyidp.pix4d.read_cicp easyidp.pix4d.read_pmat +#: easyidp.pix4d.read_xyz easyidp.pointcloud.read_las +#: easyidp.pointcloud.read_laz easyidp.pointcloud.read_ply +#: easyidp.reconstruct.Calibration.calibrate +#: easyidp.reconstruct.sort_img_by_distance easyidp.roi.ROI.back2raw +#: easyidp.roi.ROI.crop easyidp.shp.read_shp of msgid "返回" msgstr "" -#: easyidp.cvtools.imarray_crop:11 of +#: easyidp.cvtools.imarray_crop:43 of msgid "" "* **imarray_out** (*ndarray*) -- the (m,n,d) ndrray to store pixel info *" " **roi_top_left_offset** (*ndarray*) -- the (h, v) pixel index that " "represent the polygon bbox left top corner" msgstr "" -#: easyidp.cvtools.imarray_crop:11 of +#: easyidp.cvtools.imarray_crop:43 of msgid "**imarray_out** (*ndarray*) -- the (m,n,d) ndrray to store pixel info" msgstr "" -#: easyidp.cvtools.imarray_crop:12 of +#: easyidp.cvtools.imarray_crop:44 of msgid "" "**roi_top_left_offset** (*ndarray*) -- the (h, v) pixel index that " "represent the polygon bbox left top corner" @@ -93,2227 +222,7105 @@ msgstr "" msgid "easyidp.cvtools.poly2mask" msgstr "" -#: ../../python_api/cvtools.rst:19::1 easyidp.cvtools.poly2mask:1 +#: ../../python_api/cvtools.rst:20::1 easyidp.cvtools.poly2mask:1 #: of -msgid "convert vector polygon to raster masks, aim to avoid using skimage package" +msgid "convert vector polygon to raster masks" msgstr "" -#: easyidp.cvtools.poly2mask:3 easyidp.cvtools.poly2mask:6 of +#: easyidp.cvtools.poly2mask:3 of msgid "" -"(horizontal, vertical) = (width, height) !!! it is reversed with numpy " -"index order !!!" +".. caution:: it is reversed with numpy index order (horizontal, " +"vertical) = (width, height)" msgstr "" -#: easyidp.cvtools.poly2mask:6 of -msgid "" -"(horizontal, vertical) = (width, height) !!! it is reversed with numpy " -"index order !!! If dtype is int -> view coord as pixel index number " -"Will + 0.5 to coords (pixel center) as judge point if dtype is float -> " -"view coords as real coord (0,0) will be the left upper corner of " -"pixel square" +#: easyidp.cvtools.poly2mask:5 of +msgid "it is reversed with numpy index order" msgstr "" -#: easyidp.cvtools.poly2mask:9 of -msgid "If dtype is int -> view coord as pixel index number" +#: easyidp.cvtools.poly2mask:7 easyidp.cvtools.poly2mask:13 of +msgid "(horizontal, vertical) = (width, height)" msgstr "" -#: easyidp.cvtools.poly2mask:10 of -msgid "Will + 0.5 to coords (pixel center) as judge point" +#: easyidp.cvtools.poly2mask:9 of +msgid "" +".. caution:: The xy is reversed with numpy index order " +"(horizontal, vertical) = (width, height)" msgstr "" #: easyidp.cvtools.poly2mask:11 of -msgid "if dtype is float -> view coords as real coord" +msgid "The xy is reversed with numpy index order" msgstr "" -#: easyidp.cvtools.poly2mask:12 of -msgid "(0,0) will be the left upper corner of pixel square" +#: easyidp.cvtools.poly2mask:15 of +msgid "" +"| \"skimage\" or \"shapely\"; the \"pillow\" has been deprecated; | " +"skimage - ``skimage.draw.polygon2mask``, the default method; | pillow is " +"slight different than \"skimage\", deprecated; | shapely is almost the " +"same with \"skiamge\", but effiency is very slow, not recommended." +msgstr "" + +#: easyidp.cvtools.poly2mask of +msgid "\"skimage\" or \"shapely\"; the \"pillow\" has been deprecated;" +msgstr "" + +#: easyidp.cvtools.poly2mask of +msgid "skimage - ``skimage.draw.polygon2mask``, the default method;" msgstr "" -#: easyidp.cvtools.poly2mask:14 of +#: easyidp.cvtools.poly2mask of +msgid "pillow is slight different than \"skimage\", deprecated;" +msgstr "" + +#: easyidp.cvtools.poly2mask of msgid "" -"\"skimage\" or \"pillow\" or \"shapely\" skimage.draw.polygon2mask, the " -"default method pillow is slight different than skimage.draw.polygon2mask," -" deprecated shapely is almost the same with skiamge.draw.polygon2mask, " -"but effiency is very slow, not recommended" +"shapely is almost the same with \"skiamge\", but effiency is very slow, " +"not recommended." msgstr "" -#: easyidp.cvtools.poly2mask:20 of +#: easyidp.cvtools.poly2mask:21 of msgid "**mask** -- the generated binary mask" msgstr "" -#: easyidp.cvtools.poly2mask easyidp.data.user_data_dir -#: easyidp.geotiff.GeoTiff.crop easyidp.geotiff.GeoTiff.crop_polygon -#: easyidp.geotiff.GeoTiff.crop_rectangle easyidp.geotiff.GeoTiff.has_data -#: easyidp.geotiff.GeoTiff.point_query easyidp.geotiff.geo2pixel -#: easyidp.geotiff.get_header easyidp.geotiff.get_imarray -#: easyidp.geotiff.pixel2geo easyidp.geotiff.tifffile_crop -#: easyidp.jsonfile.read_json easyidp.pointcloud.PointCloud.crop -#: easyidp.pointcloud.PointCloud.crop_point_cloud +#: easyidp.cvtools.poly2mask easyidp.cvtools.rgb2gray +#: easyidp.data.user_data_dir easyidp.geotiff.GeoTiff.crop_polygon +#: easyidp.geotiff.GeoTiff.crop_rectangle easyidp.geotiff.GeoTiff.crop_rois +#: easyidp.geotiff.GeoTiff.geo2pixel easyidp.geotiff.GeoTiff.has_data +#: easyidp.geotiff.GeoTiff.pixel2geo easyidp.geotiff.GeoTiff.point_query +#: easyidp.geotiff.geo2pixel easyidp.geotiff.get_header +#: easyidp.geotiff.get_imarray easyidp.geotiff.pixel2geo +#: easyidp.geotiff.point_query easyidp.geotiff.tifffile_crop +#: easyidp.geotools.convert_proj3d easyidp.geotools.is_single_point +#: easyidp.jsonfile.read_json easyidp.metashape.Metashape.back2raw_crs +#: easyidp.metashape.Metashape.get_photo_position +#: easyidp.metashape.Metashape.sort_img_by_distance +#: easyidp.metashape.apply_transform_matrix easyidp.metashape.read_chunk_zip +#: easyidp.metashape.read_project_zip easyidp.pix4d.Pix4D.back2raw_crs +#: easyidp.pix4d.Pix4D.get_photo_position +#: easyidp.pix4d.Pix4D.sort_img_by_distance +#: easyidp.pix4d.parse_p4d_param_folder easyidp.pix4d.parse_p4d_project +#: easyidp.pix4d.read_cam_ssk easyidp.pix4d.read_campos_geo +#: easyidp.pix4d.read_ccp easyidp.pix4d.read_cicp easyidp.pix4d.read_pmat +#: easyidp.pix4d.read_xyz easyidp.pointcloud.PointCloud.crop_point_cloud +#: easyidp.pointcloud.PointCloud.crop_rois #: easyidp.pointcloud.PointCloud.has_colors #: easyidp.pointcloud.PointCloud.has_normals #: easyidp.pointcloud.PointCloud.has_points easyidp.pointcloud.read_las -#: easyidp.roi.ROI.copy easyidp.roi.ROI.crop easyidp.roi.ROI.is_geo -#: easyidp.shp.read_proj of +#: easyidp.pointcloud.read_laz easyidp.pointcloud.read_ply +#: easyidp.reconstruct.Calibration.calibrate +#: easyidp.reconstruct.Sensor.in_img_boundary +#: easyidp.reconstruct.sort_img_by_distance easyidp.roi.ROI.back2raw +#: easyidp.roi.ROI.crop easyidp.roi.ROI.is_geo easyidp.shp.read_proj of msgid "返回类型" msgstr "" -#: easyidp.cvtools.poly2mask:24 easyidp.data.user_data_dir:10 -#: easyidp.geotiff.GeoTiff.math_polygon:11 easyidp.geotiff.geo2pixel:15 -#: easyidp.geotiff.tifffile_crop:39 easyidp.jsonfile.dict2json:14 -#: easyidp.jsonfile.save_json:14 easyidp.jsonfile.write_json:14 -#: easyidp.pointcloud.write_ply:17 easyidp.roi.ROI.get_z_from_dsm:22 -#: easyidp.roi.ROI.open:7 easyidp.roi.ROI.read_shp:17 of +#: easyidp.cvtools.poly2mask:25 easyidp.cvtools.rgb2gray:10 +#: easyidp.data.show_data_dir:4 easyidp.data.user_data_dir:10 +#: easyidp.geotiff.GeoTiff.polygon_math:11 easyidp.geotiff.geo2pixel:15 +#: easyidp.geotiff.tifffile_crop:39 easyidp.geotools.convert_proj3d:16 +#: easyidp.metashape.read_chunk_zip:17 easyidp.metashape.read_project_zip:12 +#: easyidp.pix4d.parse_p4d_project:35 easyidp.pix4d.read_campos_geo:18 +#: easyidp.pix4d.read_ccp:26 easyidp.pix4d.read_cicp:15 +#: easyidp.pointcloud.write_las:51 easyidp.pointcloud.write_laz:51 +#: easyidp.pointcloud.write_ply:51 easyidp.roi.ROI.open:34 +#: easyidp.roi.ROI.read_geojson:55 easyidp.roi.ROI.read_shp:61 of msgid "备注" msgstr "" -#: easyidp.cvtools.poly2mask:25 of +#: easyidp.cvtools.poly2mask:26 of +msgid "This code is inspired from [1]_ ." +msgstr "" + +#: easyidp.cvtools.poly2mask:28 of msgid "" -"This code is inspired from here: " -"https://stackoverflow.com/questions/62280398/checking-if-a-point-is-" -"contained-in-a-polygon-multipolygon-for-many-points" +"And for the poly_coord, if using **shapely** engine, it will following " +"this logic for int and float:" msgstr "" -#: ../../python_api/autodoc/easyidp.data.show_data_dir.rst:2 -msgid "easyidp.data.show\\_data\\_dir" +#: easyidp.cvtools.poly2mask:30 of +msgid "If dtype is int -> view coord as pixel index number" msgstr "" -#: ../../python_api/data.rst:63::1 easyidp.data.show_data_dir:1 of -msgid "open the cached data files in cross-platform system default viewer." +#: easyidp.cvtools.poly2mask:31 of +msgid "Will + 0.5 to coords (pixel center) as judge point" msgstr "" -#: easyidp.data.show_data_dir:3 of -msgid "It modified from this [1]_ webpage." +#: easyidp.cvtools.poly2mask:33 of +msgid "if dtype is float -> view coords as real coord" +msgstr "" + +#: easyidp.cvtools.poly2mask:33 of +msgid "(0,0) will be the left upper corner of pixel square" msgstr "" -#: easyidp.data.show_data_dir:5 easyidp.data.url_checker:8 +#: easyidp.cvtools.poly2mask:35 easyidp.cvtools.rgb2gray:13 +#: easyidp.data.show_data_dir:7 easyidp.data.url_checker:8 #: easyidp.data.user_data_dir:23 easyidp.geotiff.tifffile_crop:44 -#: easyidp.pointcloud.write_ply:34 of +#: easyidp.pix4d.parse_p4d_param_folder:49 easyidp.pointcloud.write_ply:78 +#: easyidp.reconstruct.Calibration.calibrate:18 of msgid "引用" msgstr "" -#: easyidp.data.show_data_dir:7 of +#: easyidp.cvtools.poly2mask:37 of msgid "" -"Python: Opening a folder in Explorer/Nautilus/Finder " -"https://stackoverflow.com/questions/6631299/python-opening-a-folder-in-" -"explorer-nautilus-finder" +"https://stackoverflow.com/questions/62280398/checking-if-a-point-is-" +"contained-in-a-polygon-multipolygon-for-many-points" msgstr "" -#: ../../python_api/autodoc/easyidp.data.url_checker.rst:2 -msgid "easyidp.data.url\\_checker" +#: ../../python_api/autodoc/easyidp.cvtools.rgb2gray.rst:2 +msgid "easyidp.cvtools.rgb2gray" msgstr "" -#: ../../python_api/data.rst:63::1 easyidp.data.url_checker:1 of -msgid "Check if download url is accessable or not." +#: ../../python_api/cvtools.rst:20::1 easyidp.cvtools.rgb2gray:1 +#: of +msgid "Transform the RGB image to gray image" msgstr "" -#: easyidp.data.url_checker:3 of -msgid "Modified from this [1]_ link." +#: easyidp.cvtools.rgb2gray:3 of +msgid "The RGB ndarray image need to be converted" msgstr "" -#: easyidp.data.url_checker:5 of -msgid "The url need to be checked" +#: easyidp.cvtools.rgb2gray:6 of +msgid "**gray** -- The output 2D ndarray after convension" msgstr "" -#: easyidp.data.url_checker:10 of -msgid "https://pytutorial.com/check-url-is-reachable" +#: easyidp.cvtools.rgb2gray:11 of +msgid "Using the same formular that matplotlib did [1]_ for the transformation." msgstr "" -#: ../../python_api/autodoc/easyidp.data.user_data_dir.rst:2 -msgid "easyidp.data.user\\_data\\_dir" +#: easyidp.cvtools.rgb2gray:15 of +msgid "" +"https://stackoverflow.com/questions/12201577/how-can-i-convert-an-rgb-" +"image-into-grayscale-in-python" msgstr "" -#: ../../python_api/data.rst:63::1 easyidp.data.user_data_dir:1 of -msgid "Get OS specific data directory path for EasyIDP." +#: ../../python_api/autodoc/easyidp.data.EasyidpDataSet.rst:2 +msgid "easyidp.data.EasyidpDataSet" msgstr "" -#: easyidp.data.user_data_dir:3 of -msgid "file to be fetched from the data dir" +#: ../../python_api/data.rst:74::1 easyidp.data.EasyidpDataSet:1 +#: of +msgid "The base class for Dataset" msgstr "" -#: easyidp.data.user_data_dir:6 of -msgid "full path to the user-specific data dir" +#: easyidp.data.EasyidpDataSet.__init__:1 +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid "The dataset has the following properties (almost in string type)" msgstr "" -#: easyidp.data.user_data_dir:11 of -msgid "Typical user data directories are:" +#: easyidp.data.EasyidpDataSet.__init__:3 of +msgid "name" msgstr "" -#: easyidp.data.user_data_dir:19 of -msgid "" -"For Unix, we follow the XDG spec and support ``$XDG_DATA_HOME`` if " -"defined." +#: easyidp.data.EasyidpDataSet.__init__:4 of +msgid "The dataset name" msgstr "" -#: easyidp.data.user_data_dir:21 of -msgid "Referenced from stackoverflow [1]_ then get github [2]_ ." +#: easyidp.data.EasyidpDataSet.__init__:5 of +msgid "gdrive_url" msgstr "" -#: easyidp.data.user_data_dir:25 of -msgid "" -"Python: Getting AppData folder in a cross-platform way " -"https://stackoverflow.com/questions/19078969/python-getting-appdata-" -"folder-in-a-cross-platform-way" +#: easyidp.data.EasyidpDataSet.__init__:6 of +msgid "The google drive download urls" msgstr "" -#: easyidp.data.user_data_dir:26 of -msgid "" -"SwagLyrics-For-Spotify/swaglyrics/__init__.py " -"https://github.com/SwagLyrics/SwagLyrics-For-" -"Spotify/blob/master/swaglyrics/__init__.py#L8-L32" +#: easyidp.data.EasyidpDataSet.__init__:7 of +msgid "size" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:2 -msgid "easyidp.geotiff.GeoTiff" +#: easyidp.data.EasyidpDataSet.__init__:8 of +msgid "Ths size of zipped file" msgstr "" -#: ../../python_api/geotiff.rst:17::1 easyidp.geotiff.GeoTiff:1 of -msgid "" -"A GeoTiff class, consisted by header information and file path to raw " -"file." +#: easyidp.data.EasyidpDataSet.__init__:9 of +msgid "data_dir" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:13 -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:13 -#: ../../python_api/autodoc/easyidp.roi.ROI.rst:13 -msgid "Methods" +#: easyidp.data.EasyidpDataSet.__init__:10 of +msgid "The final dataset directory" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`__init__ `\\ " -"\\(\\[tif\\_path\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:11 of +msgid "zip_file" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`create_grid `\\ \\(w\\, " -"h\\[\\, extend\\, grid\\_buffer\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:12 of +msgid "The *temporary* downloaded zip file path (won't be used in)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`crop `\\ \\(roi\\[\\, is\\_geo\\, " -"save\\_folder\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:13 of +msgid "shp" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1 -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.crop:1 of -msgid "" -"Crop several ROIs from the geotiff by given object with several " -"polygons and polygon names" +#: easyidp.data.EasyidpDataSet.__init__:14 of +msgid "The path to plot ROI shapefile (\\*.shp)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`crop_polygon `\\ " -"\\(polygon\\_hv\\[\\, is\\_geo\\, save\\_path\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:16 of +msgid "photo" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.crop_polygon:1 of -msgid "crop a given polygon from geotiff" +#: easyidp.data.EasyidpDataSet.__init__:16 of +msgid "The folder path to the raw photos" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`crop_rectangle `\\ " -"\\(left\\, top\\, w\\, h\\[\\, is\\_geo\\, ...\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:18 of +msgid "pix4d.proj" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.crop_rectangle:1 of -msgid "Extract a rectangle regeion crop from a GeoTIFF image file." +#: easyidp.data.EasyidpDataSet.__init__:19 of +msgid "The pix4d project folder" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid ":py:obj:`has_data `\\ \\(\\)" +#: easyidp.data.EasyidpDataSet.__init__:20 of +msgid "pix4d.param" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.has_data:1 of -msgid "Return True if current objects has geotiff infomation" +#: easyidp.data.EasyidpDataSet.__init__:21 of +msgid "The parameter folder of pix4d porject" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`math_polygon `\\ " -"\\(polygon\\_hv\\[\\, is\\_geo\\, kernel\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:22 of +msgid "pix4d.dom" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.math_polygon:1 of -msgid "Calculate the valus inside given polygon" +#: easyidp.data.EasyidpDataSet.__init__:23 +#: easyidp.data.EasyidpDataSet.__init__:34 of +msgid "The generated DOM path of plot map" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`point_query `\\ " -"\\(points\\_hv\\[\\, is\\_geo\\]\\)" +#: easyidp.data.EasyidpDataSet.__init__:24 of +msgid "pix4d.dsm" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.point_query:1 of -msgid "get the pixel value of given point(s)" +#: easyidp.data.EasyidpDataSet.__init__:25 +#: easyidp.data.EasyidpDataSet.__init__:36 of +msgid "The generated DSM path of plot map" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`read_geotiff `\\ " -"\\(tif\\_path\\)" +#: easyidp.data.EasyidpDataSet.__init__:27 of +msgid "pix4d.pcd" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.read_geotiff:1 of -msgid "Open and get the meta information (header) from geotiff" +#: easyidp.data.EasyidpDataSet.__init__:27 +#: easyidp.data.EasyidpDataSet.__init__:38 of +msgid "The generated pointcloud path of plot map" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid ":py:obj:`save `\\ \\(\\)" +#: easyidp.data.EasyidpDataSet.__init__:29 of +msgid "metashape.proj" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 of -msgid "" -":py:obj:`save_geotiff `\\ " -"\\(imarray\\, left\\_top\\_corner\\, save\\_path\\)" +#: easyidp.data.EasyidpDataSet.__init__:30 of +msgid "The metashape project file" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:1::1 -#: easyidp.geotiff.GeoTiff.save_geotiff:1 of -msgid "Save cropped region to geotiff file" +#: easyidp.data.EasyidpDataSet.__init__:31 of +msgid "metashape.param" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:3 of -msgid "" -"the object created by easyidp.ROI(), or dictionary with multiple " -"polygons. If you just need crop single polygon with ndarray coordinates, " -"please use GeoTiff.crop_polygon() instead." +#: easyidp.data.EasyidpDataSet.__init__:32 of +msgid "The parameter folder of metashape porject" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:6 easyidp.geotiff.GeoTiff.crop_polygon:5 -#: easyidp.geotiff.GeoTiff.crop_rectangle:25 -#: easyidp.geotiff.GeoTiff.math_polygon:5 easyidp.geotiff.GeoTiff.point_query:5 -#: easyidp.pointcloud.PointCloud.crop:5 easyidp.roi.ROI.crop:5 of -msgid "" -"whether the given polygon is pixel coords on imarray or geo coords " -"(default)" +#: easyidp.data.EasyidpDataSet.__init__:33 of +msgid "metashape.dom" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:8 of -msgid "" -"the folder to save cropped images, use ROI indices as file_names, by " -"default \"\", means not save." +#: easyidp.data.EasyidpDataSet.__init__:35 of +msgid "metashape.dsm" msgstr "" -#: easyidp.geotiff.GeoTiff.crop:11 easyidp.roi.ROI.crop:10 of -msgid "The dictionary with key=id and value=ndarray data" +#: easyidp.data.EasyidpDataSet.__init__:37 of +msgid "metashape.pcd" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_polygon:3 -#: easyidp.geotiff.GeoTiff.math_polygon:3 of -msgid "(horizontal, vertical) points" +#: ../../python_api/autodoc/easyidp.data.EasyidpDataSet.rst:13 +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:13 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:13 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:13 +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:13 +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:13 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:13 +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:13 +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:13 +#: ../../python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst:13 +#: ../../python_api/autodoc/easyidp.reconstruct.Photo.rst:13 +#: ../../python_api/autodoc/easyidp.reconstruct.Recons.rst:13 +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:13 +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:13 +msgid "Methods" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_polygon:7 of -msgid "if given, will save the cropped as \\*.tif file to path, by default None" +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid "" +":py:obj:`__init__ `\\ \\(\\[name\\," +" gdrive\\_url\\, size\\]\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_polygon:10 of -msgid "The cropped numpy pixels imarray" +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid ":py:obj:`load_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:17 of -msgid "Coordinates of" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +#: easyidp.data.EasyidpDataSet.load_data:1 +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid "Download dataset from Google Drive to user AppData folder" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:19 of -msgid "Coordinates of the top left corner of the desired crop." +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid ":py:obj:`reload_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:21 easyidp.geotiff.tifffile_crop:30 -#: of -msgid "Desired crop height." +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +#: easyidp.data.EasyidpDataSet.load_data:1::1 +#: easyidp.data.EasyidpDataSet.reload_data:1 of +msgid "remove local data and redownload again" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:23 easyidp.geotiff.tifffile_crop:32 -#: of -msgid "Desired crop width." +#: easyidp.data.EasyidpDataSet.load_data:1::1 of +msgid ":py:obj:`remove_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:27 of -msgid "if given, will save the cropped as \\*.tif file to path" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +#: easyidp.data.EasyidpDataSet.load_data:1::1 +#: easyidp.data.EasyidpDataSet.remove_data:1 of +msgid "remove local cached data file" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:30 of -msgid "Extracted crop." +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:2 +msgid "easyidp.data.ForestBirds" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:33 of -msgid ":obj:`easyidp.geotiff.tifffile_crop`" +#: ../../python_api/data.rst:17::1 easyidp.data.ForestBirds:1 of +msgid "" +"The dataset for forest ecology survey, provided by the University of " +"Florida." msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:36 -#: easyidp.geotiff.GeoTiff.point_query:12 easyidp.geotiff.geo2pixel:28 -#: easyidp.geotiff.tifffile_crop:49 easyidp.roi.ROI.get_z_from_dsm:49 -#: easyidp.shp.read_shp:27 of -msgid "示例" +#: easyidp.data.ForestBirds:-1 of +msgid "2022_florida_forestbird.png" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:43 easyidp.geotiff.tifffile_crop:58 -#: of -msgid "It is not recommended to use without specifying parameters like this:" +#: easyidp.data.ForestBirds:7 of +msgid "**Author**: Prof. Ben Weinstein, The University of Florida." msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:45 easyidp.geotiff.tifffile_crop:60 -#: of -msgid "``crop_rectiange(434, 918, 320, 321)``" +#: easyidp.data.ForestBirds:8 of +msgid "**Location** : Florida, US" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:47 of -msgid "It is hard to know the exactly order" +#: easyidp.data.ForestBirds:9 of +msgid "**Flight date** : March 24, 2022" msgstr "" -#: easyidp.geotiff.GeoTiff.crop_rectangle:49 of -msgid "" -"PS: subfunction ``tifffile_crop`` has the order ``(top, left, h, w)`` " -"which is too heavy to change it." -msgstr "" - -#: easyidp.geotiff.GeoTiff.math_polygon:7 of -msgid "" -"The method to calculate polygon summary, options are: [\"mean\", \"min\"," -" \"max\", \"pmin5\", \"pmin10\", \"pmax5\", \"pmax10\"], please check " -"notes section for more details." +#: easyidp.data.ForestBirds:10 of +msgid "**UAV model** : DJI FC6540" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:12 of -msgid "Option details for ``kernal`` parameter:" +#: easyidp.data.ForestBirds:11 of +msgid "**Flight height** : ?? m" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:14 easyidp.roi.ROI.get_z_from_dsm:25 of -msgid "\"mean\": the mean value inside polygon" +#: easyidp.data.ForestBirds:12 of +msgid "**Image number** :93" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:15 easyidp.roi.ROI.get_z_from_dsm:26 of -msgid "\"min\": the minimum value inside polygon" +#: easyidp.data.ForestBirds:13 of +msgid "**Image size** : 6016 x 4008" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:16 easyidp.roi.ROI.get_z_from_dsm:27 of -msgid "\"max\": the maximum value inside polygon" +#: easyidp.data.ForestBirds:14 of +msgid "**Software** : Metashape" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:17 of -msgid "\"pmin5\": 5th [percentile mean]_ inside polygon" +#: easyidp.data.ForestBirds:15 easyidp.data.Lotus:15 of +msgid "**Outputs** : DOM, DSM, PCD" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:18 of -msgid "\"pmin10\": 10th [percentile mean]_ inside polygon" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +#: easyidp.data.ForestBirds.__init__:1 easyidp.data.Lotus.__init__:1 +#: easyidp.data.TestData.__init__:1 of +msgid "Containts the following arguments, you can access by:" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:19 of -msgid "\"pmax5\": 95th [percentile mean]_ inside polygon" +#: easyidp.data.ForestBirds.__init__:9 easyidp.data.Lotus.__init__:9 of +msgid "``.photo`` : the folder containts raw images" msgstr "" -#: easyidp.geotiff.GeoTiff.math_polygon:20 of -msgid "\"pmax10\": 90th [percentile mean]_ inside polygon" +#: easyidp.data.ForestBirds.__init__:10 easyidp.data.Lotus.__init__:10 of +msgid "``.shp`` : the plot roi shapefile" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:3 of -msgid "The coordinates of qurey points, in order (horizontal, vertical)" +#: easyidp.data.ForestBirds.__init__:11 easyidp.data.Lotus.__init__:16 of +msgid "``.metashape.project`` : the metashape project file" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:8 of -msgid "the obtained pixel value (RGB or height)" +#: easyidp.data.ForestBirds.__init__:12 easyidp.data.Lotus.__init__:17 of +msgid "``.metashape.param`` : the metashape project folder" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:13 of -msgid "Prequirements" +#: easyidp.data.ForestBirds.__init__:13 easyidp.data.Lotus.__init__:18 of +msgid "``.metashape.dom`` : the metashape produced orthomosaic" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:20 of -msgid "Query one point by tuple" +#: easyidp.data.ForestBirds.__init__:14 easyidp.data.Lotus.__init__:20 of +msgid "``.metashape.dsm`` : the metashape produced digial surface model" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:29 of -msgid "Query one point by list" +#: easyidp.data.ForestBirds.__init__:16 easyidp.data.Lotus.__init__:22 +#: easyidp.data.TestData.__init__:95 of +msgid ":obj:`EasyidpDataSet`" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:38 of -msgid "Query several points by list" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +msgid ":py:obj:`__init__ `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.point_query:49 of -msgid "Query several points by numpy" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +msgid ":py:obj:`load_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.read_geotiff:3 easyidp.geotiff.get_imarray:3 of -msgid "the path to geotiff file" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +msgid ":py:obj:`reload_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.save_geotiff:3 of -msgid "(m, n, d) image ndarray cropped from `crop_polygon`" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:24::1 +msgid ":py:obj:`remove_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.GeoTiff.save_geotiff:5 of -msgid "the pixel position of image top left cornder, the order is (left, top)" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:26 +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:26 +#: ../../python_api/autodoc/easyidp.data.TestData.rst:26 +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:32 +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:32 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:32 +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:33 +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:24 +#: ../../python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst:23 +#: ../../python_api/autodoc/easyidp.reconstruct.Photo.rst:23 +#: ../../python_api/autodoc/easyidp.reconstruct.Recons.rst:23 +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:24 +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:29 +msgid "Attributes" msgstr "" -#: easyidp.geotiff.GeoTiff.save_geotiff:8 of -msgid "the save to geotiff file path" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:31::1 +msgid ":py:obj:`gdrive_url `\\" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.geo2pixel.rst:2 -msgid "easyidp.geotiff.geo2pixel" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:31::1 +msgid ":py:obj:`name `\\" msgstr "" -#: ../../python_api/geotiff.rst:32::1 easyidp.geotiff.geo2pixel:1 -#: of -msgid "" -"convert point cloud xyz coordinate to geotiff pixel coordinate " -"(horizontal, vertical)" +#: ../../python_api/autodoc/easyidp.data.ForestBirds.rst:31::1 +msgid ":py:obj:`size `\\" msgstr "" -#: easyidp.geotiff.geo2pixel:3 easyidp.geotiff.pixel2geo:3 of -msgid "[horizontal, vertical] points" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:2 +msgid "easyidp.data.Lotus" msgstr "" -#: easyidp.geotiff.geo2pixel:5 easyidp.geotiff.pixel2geo:5 of -msgid "the geotiff head dictionary from get_header()" +#: ../../python_api/data.rst:17::1 easyidp.data.Lotus:1 of +msgid "The dataset for lotus plot in Tanashi, Tokyo." msgstr "" -#: easyidp.geotiff.geo2pixel:7 of -msgid "" -"if false: will get float coordinates -> (23.5, 27.8) if true: will get " -"int pixel index -> (23, 27)" +#: easyidp.data.Lotus:-1 of +msgid "2017_tanashi_lotus.png" msgstr "" -#: easyidp.geotiff.geo2pixel:11 of -msgid "pixel position of these points (horizontal, vertical)" +#: easyidp.data.Lotus:7 of +msgid "**Crop** : lotus" msgstr "" -#: easyidp.geotiff.geo2pixel:16 of -msgid "" -"Please note: gis UTM coordinate, horizontal is x axis, vertical is y " -"axis, origin at left upper." +#: easyidp.data.Lotus:8 of +msgid "**Location** : Tanashi, Nishi-Tokyo, Japan" msgstr "" -#: easyidp.geotiff.geo2pixel:18 of -msgid "To crop image ndarray:" +#: easyidp.data.Lotus:9 of +msgid "**Flight date** : May 31, 2017" msgstr "" -#: easyidp.geotiff.geo2pixel:20 of -msgid "the first columns is vertical pixel (along height)," +#: easyidp.data.Lotus:10 of +msgid "**UAV model** : DJI Inspire 1" msgstr "" -#: easyidp.geotiff.geo2pixel:21 of -msgid "the second columns is horizontal pixel number (along width)," +#: easyidp.data.Lotus:11 of +msgid "**Flight height** : 30m" msgstr "" -#: easyidp.geotiff.geo2pixel:22 of -msgid "the third columns is 3 or 4 bands (RGB, alpha)," +#: easyidp.data.Lotus:12 of +msgid "**Image number** :142" msgstr "" -#: easyidp.geotiff.geo2pixel:23 of -msgid "the x and y is reversed compared with gis coordinates." +#: easyidp.data.Lotus:13 of +msgid "**Image size** : 4608 x 3456" msgstr "" -#: easyidp.geotiff.geo2pixel:25 of -msgid "" -"This function has already do this reverse, so that you can use the output" -" directly." +#: easyidp.data.Lotus:14 of +msgid "**Software** : Pix4D, Metashape" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.get_header.rst:2 -msgid "easyidp.geotiff.get\\_header" +#: easyidp.data.Lotus.__init__:11 of +msgid "``.pix4d.project`` : the pix4d project folder" msgstr "" -#: ../../python_api/geotiff.rst:32::1 easyidp.geotiff.get_header:1 -#: of -msgid "Read the necessary meta infomation from TIFF file" +#: easyidp.data.Lotus.__init__:12 of +msgid "``.pix4d.param`` : the pix4d project parameter folder" msgstr "" -#: easyidp.geotiff.get_header:3 of -msgid "the path to the geotiff file" +#: easyidp.data.Lotus.__init__:13 of +msgid "``.pix4d.dom`` : the pix4d produced orthomosaic" msgstr "" -#: easyidp.geotiff.get_header:6 of -msgid "**header** -- the container of acquired meta info" +#: easyidp.data.Lotus.__init__:14 of +msgid "``.pix4d.dsm`` : the pix4d produced digial surface del" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.get_imarray.rst:2 -msgid "easyidp.geotiff.get\\_imarray" +#: easyidp.data.Lotus.__init__:15 of +msgid "``.pix4d.pcd`` : the pix4d produced point cloud" msgstr "" -#: ../../python_api/geotiff.rst:32::1 -#: easyidp.geotiff.get_imarray:1 of -msgid "Read full map data as numpy array (time and RAM costy, not recommended)" +#: easyidp.data.Lotus.__init__:19 of +msgid "``.metashape.pcd`` : the metashape produced point cloud" msgstr "" -#: easyidp.geotiff.get_imarray:6 of -msgid "**data** -- the obtained image data" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +msgid ":py:obj:`__init__ `\\ \\(\\)" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.pixel2geo.rst:2 -msgid "easyidp.geotiff.pixel2geo" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +msgid ":py:obj:`load_data `\\ \\(\\)" msgstr "" -#: ../../python_api/geotiff.rst:32::1 easyidp.geotiff.pixel2geo:1 -#: of -msgid "" -"convert geotiff pixel coordinate (horizontal, vertical) to point cloud " -"xyz coordinate (x, y, z)" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +msgid ":py:obj:`reload_data `\\ \\(\\)" msgstr "" -#: easyidp.geotiff.pixel2geo:10 of -msgid ":obj:`easyidp.geotiff.get_header`" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:24::1 +msgid ":py:obj:`remove_data `\\ \\(\\)" msgstr "" -#: ../../python_api/autodoc/easyidp.geotiff.tifffile_crop.rst:2 -msgid "easyidp.geotiff.tifffile\\_crop" +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:31::1 +msgid ":py:obj:`gdrive_url `\\" msgstr "" -#: ../../python_api/geotiff.rst:32::1 -#: easyidp.geotiff.tifffile_crop:1 of -msgid "Extract a crop from a TIFF image file directory (IFD)." +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:31::1 +msgid ":py:obj:`name `\\" msgstr "" -#: easyidp.geotiff.tifffile_crop:3 of -msgid "" -"Only the tiles englobing the crop area are loaded and not the whole page." -" This is usefull for large Whole slide images that can't fit int RAM." +#: ../../python_api/autodoc/easyidp.data.Lotus.rst:31::1 +msgid ":py:obj:`size `\\" msgstr "" -#: easyidp.geotiff.tifffile_crop:20 of -msgid "TIFF image file directory (IFD) from which the crop must be extracted." +#: ../../python_api/autodoc/easyidp.data.TestData.rst:2 +msgid "easyidp.data.TestData" msgstr "" -#: easyidp.geotiff.tifffile_crop:22 easyidp.geotiff.tifffile_crop:26 of -msgid "" -"Coordinates of the top left corner of the desired crop. top = i0 = " -"height_st left = j0 = w_st" +#: ../../python_api/data.rst:74::1 easyidp.data.TestData:1 of +msgid "The data for developer and package testing." msgstr "" -#: easyidp.geotiff.tifffile_crop:35 of -msgid "**out** -- Extracted crop." +#: easyidp.data.TestData.__init__:3 of +msgid "**json test module**" msgstr "" -#: easyidp.geotiff.tifffile_crop:40 of -msgid "Modified from [1]_ ," +#: easyidp.data.TestData.__init__:5 of +msgid "``.json.for_read_json``" msgstr "" -#: easyidp.geotiff.tifffile_crop:42 of -msgid "" -"In EasyIDP v1.0, the function is ``caas_lite.get_crop(page, i0, j0, h, " -"w)``" +#: easyidp.data.TestData.__init__:6 of +msgid "``.json.labelme_demo``" msgstr "" -#: easyidp.geotiff.tifffile_crop:46 of -msgid "" -"https://gist.github.com/rfezzani/b4b8852c5a48a901c1e94e09feb34743#file-" -"get_crop-py-L60" +#: easyidp.data.TestData.__init__:7 of +msgid "``.json.labelme_warn``" msgstr "" -#: easyidp.geotiff.tifffile_crop:62 of -msgid "It is hard to know the exactly order immediately." +#: easyidp.data.TestData.__init__:8 of +msgid "``.json.labelme_err``" msgstr "" -#: easyidp.geotiff.tifffile_crop:64 of -msgid ":class:`easyidp.Geotiff.crop_rectange`" +#: easyidp.data.TestData.__init__:10 of +msgid "**shp test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.jsonfile.dict2json.rst:2 -msgid "easyidp.jsonfile.dict2json" +#: easyidp.data.TestData.__init__:12 of +msgid "``.shp.lotus_shp``" msgstr "" -#: ../../python_api/json.rst:23::1 easyidp.jsonfile.dict2json:1 of -msgid "Convert dict to the same structure json file" +#: easyidp.data.TestData.__init__:13 of +msgid "``.shp.lotus_prj``" msgstr "" -#: easyidp.jsonfile.dict2json:3 easyidp.jsonfile.save_json:3 -#: easyidp.jsonfile.write_json:3 of -msgid "the dict object want to save as json file" +#: easyidp.data.TestData.__init__:14 of +msgid "``.shp.complex_shp``" msgstr "" -#: easyidp.jsonfile.dict2json:5 easyidp.jsonfile.save_json:5 -#: easyidp.jsonfile.write_json:5 of -msgid "" -"the path including json file name to save the json file e.g. " -"``D:/xxx/xxxx/save.json``" +#: easyidp.data.TestData.__init__:15 of +msgid "``.shp.complex_prj``" msgstr "" -#: easyidp.jsonfile.dict2json:8 easyidp.jsonfile.save_json:8 -#: easyidp.jsonfile.write_json:8 of -msgid "whether save \"readable\" json with indent, default 0 without indent" +#: easyidp.data.TestData.__init__:16 of +msgid "``.shp.lonlat_shp``" msgstr "" -#: easyidp.jsonfile.dict2json:10 easyidp.jsonfile.save_json:10 -#: easyidp.jsonfile.write_json:10 of -msgid "the encoding type of output file" +#: easyidp.data.TestData.__init__:17 of +msgid "``.shp.utm53n_shp``" msgstr "" -#: easyidp.jsonfile.dict2json:15 easyidp.jsonfile.save_json:15 -#: easyidp.jsonfile.write_json:15 of -msgid "**indient example**" +#: easyidp.data.TestData.__init__:18 of +msgid "``.shp.utm53n_prj``" msgstr "" -#: easyidp.jsonfile.dict2json:28 of -msgid ":obj:`easyidp.jsonfile.write_json`, :obj:`easyidp.jsonfile.save_json`" +#: easyidp.data.TestData.__init__:19 of +msgid "``.shp.rice_shp``" msgstr "" -#: ../../python_api/autodoc/easyidp.jsonfile.read_json.rst:2 -msgid "easyidp.jsonfile.read\\_json" +#: easyidp.data.TestData.__init__:20 of +msgid "``.shp.rice_prj``" msgstr "" -#: ../../python_api/json.rst:23::1 easyidp.jsonfile.read_json:1 of -msgid "Read json file to python dict." +#: easyidp.data.TestData.__init__:21 of +msgid "``.shp.roi_shp``" msgstr "" -#: easyidp.jsonfile.read_json:3 of -msgid "The path to json file" +#: easyidp.data.TestData.__init__:22 of +msgid "``.shp.roi_prj``" msgstr "" -#: ../../python_api/autodoc/easyidp.jsonfile.save_json.rst:2 -msgid "easyidp.jsonfile.save\\_json" +#: easyidp.data.TestData.__init__:23 of +msgid "``.shp.testutm_shp``" msgstr "" -#: ../../python_api/json.rst:23::1 easyidp.jsonfile.save_json:1 -#: easyidp.jsonfile.write_json:1 of -msgid "Save dict to the same structure json file" +#: easyidp.data.TestData.__init__:24 of +msgid "``.shp.testutm_prj``" msgstr "" -#: easyidp.jsonfile.save_json:28 easyidp.jsonfile.write_json:28 of -msgid ":obj:`easyidp.jsonfile.dict2json`, :obj:`easyidp.jsonfile.save_json`" +#: easyidp.data.TestData.__init__:26 of +msgid "**pcd test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.jsonfile.write_json.rst:2 -msgid "easyidp.jsonfile.write\\_json" +#: easyidp.data.TestData.__init__:28 of +msgid "``.pcd.lotus_las``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:2 -msgid "easyidp.pointcloud.PointCloud" +#: easyidp.data.TestData.__init__:29 of +msgid "``.pcd.lotus_laz``" msgstr "" -#: easyidp.pointcloud.PointCloud:1 of -msgid "" -"PointCloud class. A point cloud consists of point coordinates, and " -"optionally point colors and point normals." +#: easyidp.data.TestData.__init__:30 of +msgid "``.pcd.lotus_pcd``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`__init__ `\\ " -"\\(\\[pcd\\_path\\, offset\\]\\)" +#: easyidp.data.TestData.__init__:31 of +msgid "``.pcd.lotus_las13``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid ":py:obj:`clear `\\ \\(\\)" +#: easyidp.data.TestData.__init__:32 of +msgid "``.pcd.lotus_laz13``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`crop `\\ \\(roi\\[\\, " -"save\\_folder\\]\\)" +#: easyidp.data.TestData.__init__:33 of +msgid "``.pcd.lotus_ply_asc``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -#: easyidp.pointcloud.PointCloud.crop:1 of -msgid "" -"Crop several ROIs by given object with several polygons and polygon" -" names" +#: easyidp.data.TestData.__init__:34 of +msgid "``.pcd.lotus_ply_bin``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`crop_point_cloud " -"`\\ \\(polygon\\_xy\\)" +#: easyidp.data.TestData.__init__:35 of +msgid "``.pcd.maize_las``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -#: easyidp.pointcloud.PointCloud.crop_point_cloud:1 of -msgid "crop the point cloud along z axis" +#: easyidp.data.TestData.__init__:36 of +msgid "``.pcd.maize_laz``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid ":py:obj:`has_colors `\\ \\(\\)" +#: easyidp.data.TestData.__init__:37 of +msgid "``.pcd.maize_ply``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -#: easyidp.pointcloud.PointCloud.has_colors:1 of -msgid "Returns True if the point cloud contains point colors." +#: easyidp.data.TestData.__init__:39 of +msgid "**roi test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid ":py:obj:`has_normals `\\ \\(\\)" +#: easyidp.data.TestData.__init__:41 of +msgid "``.roi.dxf``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -#: easyidp.pointcloud.PointCloud.has_normals:1 of -msgid "Returns True if the point cloud contains point normals." +#: easyidp.data.TestData.__init__:42 of +msgid "``.roi.lxyz_txt``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid ":py:obj:`has_points `\\ \\(\\)" +#: easyidp.data.TestData.__init__:43 of +msgid "``.roi.xyz_txt``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -#: easyidp.pointcloud.PointCloud.has_points:1 of -msgid "Returns True if the point cloud contains points." +#: easyidp.data.TestData.__init__:45 of +msgid "**geotiff test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`read_point_cloud " -"`\\ \\(pcd\\_path\\)" +#: easyidp.data.TestData.__init__:47 of +msgid "``.tiff.soyweed_part``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`set_offset_value " -"`\\ \\(o\\[\\, " -"show\\_warn\\]\\)" +#: easyidp.data.TestData.__init__:48 of +msgid "``.tiff.out``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:30::1 -msgid "" -":py:obj:`write_point_cloud " -"`\\ \\(pcd\\_path\\)" +#: easyidp.data.TestData.__init__:50 of +msgid "**metashape test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:32 -msgid "Attributes" +#: easyidp.data.TestData.__init__:52 of +msgid "``.metashape.goya_psx``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop:1::1 of -msgid ":py:obj:`offset `\\" +#: easyidp.data.TestData.__init__:53 of +msgid "``.metashape.goya_param``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop:1::1 of -msgid ":py:obj:`points `\\" +#: easyidp.data.TestData.__init__:54 of +msgid "``.metashape.lotus_psx``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop:3 of -msgid "the object created by easyidp.ROI()" +#: easyidp.data.TestData.__init__:55 of +msgid "``.metashape.lotus_param``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop:7 easyidp.roi.ROI.crop:7 of -msgid "" -"the folder to save cropped images, use ROI indices as file_names, by " -"default None, means not save." +#: easyidp.data.TestData.__init__:56 of +msgid "``.metashape.lotus_dsm``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop:10 of -msgid "The dictionary with key=id and value=" +#: easyidp.data.TestData.__init__:57 of +msgid "``.metashape.wheat_psx``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop_point_cloud:3 of -msgid "the polygon xy coords" +#: easyidp.data.TestData.__init__:58 of +msgid "``.metashape.wheat_param``" msgstr "" -#: easyidp.pointcloud.PointCloud.crop_point_cloud:6 of -msgid "The cropped point cloud" +#: easyidp.data.TestData.__init__:59 of +msgid "``.metashape.multichunk_psx``" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.read_las.rst:2 -msgid "easyidp.pointcloud.read\\_las" +#: easyidp.data.TestData.__init__:60 of +msgid "``.metashape.multichunk_param``" msgstr "" -#: ../../python_api/pointcloud.rst:29::1 -#: easyidp.pointcloud.read_las:1 of -msgid "Read the las file" +#: easyidp.data.TestData.__init__:61 of +msgid "``.metashape.two_calib``" msgstr "" -#: easyidp.pointcloud.read_las:3 of -msgid "The path to las file" +#: easyidp.data.TestData.__init__:62 of +msgid "``.metashape.multi_spectral``" msgstr "" -#: easyidp.pointcloud.read_las:6 of -msgid "points, colors, normals of given point cloud data" +#: easyidp.data.TestData.__init__:65 of +msgid "**pix4d test module**" msgstr "" -#: ../../python_api/autodoc/easyidp.pointcloud.write_ply.rst:2 -msgid "easyidp.pointcloud.write\\_ply" +#: easyidp.data.TestData.__init__:67 of +msgid "``.pix4d.lotus_folder``" msgstr "" -#: ../../python_api/pointcloud.rst:29::1 -#: easyidp.pointcloud.write_ply:1 of -msgid "Save point cloud to ply format" +#: easyidp.data.TestData.__init__:68 of +msgid "``.pix4d.lotus_param``" msgstr "" -#: easyidp.pointcloud.write_ply:3 of -msgid "the nx3 numpy ndarray of point XYZ info" +#: easyidp.data.TestData.__init__:69 of +msgid "``.pix4d.lotus_photos``" msgstr "" -#: easyidp.pointcloud.write_ply:5 of -msgid "the nx3 numpy ndarray of point RGB info, dtype=np.uint8" +#: easyidp.data.TestData.__init__:70 of +msgid "``.pix4d.lotus_dom``" msgstr "" -#: easyidp.pointcloud.write_ply:7 of -msgid "the output point cloud file, including ext." +#: easyidp.data.TestData.__init__:71 of +msgid "``.pix4d.lotus_dsm``" msgstr "" -#: easyidp.pointcloud.write_ply:9 of -msgid "the nx3 numpy ndarray of point normal info, by default None" +#: easyidp.data.TestData.__init__:72 of +msgid "``.pix4d.lotus_pcd``" msgstr "" -#: easyidp.pointcloud.write_ply:11 of -msgid "" -"whether save the binary file. True: save BINARY ply file (by default) " -"False: save ASCII ply file." +#: easyidp.data.TestData.__init__:73 of +msgid "``.pix4d.lotus_dom_part``" msgstr "" -#: easyidp.pointcloud.write_ply:18 of -#, fuzzy -msgid "" -"Need to convert to structured arrays [1]_ then save the point cloud " -"structure looks like this:" +#: easyidp.data.TestData.__init__:74 of +msgid "``.pix4d.lotus_dsm_part``" msgstr "" -#: easyidp.pointcloud.write_ply:32 of -msgid "" -"convert ndarray to strucutred array [2]_ and method to merge to " -"structured arrays [3]_" +#: easyidp.data.TestData.__init__:75 of +msgid "``.pix4d.lotus_pcd_part``" msgstr "" -#: easyidp.pointcloud.write_ply:36 of -msgid "https://github.com/dranjan/python-plyfile#creating-a-ply-file" +#: easyidp.data.TestData.__init__:76 of +msgid "``.pix4d.maize_folder``" msgstr "" -#: easyidp.pointcloud.write_ply:37 of -msgid "" -"https://stackoverflow.com/questions/3622850/converting-a-2d-numpy-array-" -"to-a-structured-array" +#: easyidp.data.TestData.__init__:77 of +msgid "``.pix4d.maize_dom``" msgstr "" -#: easyidp.pointcloud.write_ply:38 of -msgid "" -"https://stackoverflow.com/questions/5355744/numpy-joining-structured-" -"arrays" +#: easyidp.data.TestData.__init__:78 of +msgid "``.pix4d.maize_dsm``" msgstr "" -#: ../../python_api/autodoc/easyidp.roi.ROI.rst:2 -msgid "easyidp.roi.ROI" +#: easyidp.data.TestData.__init__:79 of +msgid "``.pix4d.maize_noparam``" msgstr "" -#: ../../python_api/roi.rst:17::1 easyidp.roi.ROI:1 of -msgid "Summary APIs of each objects, often read from shp file." +#: easyidp.data.TestData.__init__:80 of +msgid "``.pix4d.maize_empty``" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`__init__ `\\ \\(\\[target\\_path\\]\\)" +#: easyidp.data.TestData.__init__:81 of +msgid "``.pix4d.maize_noout``" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`back2raw `\\ \\(recons\\[\\, " -"save\\_folder\\]\\)" +#: easyidp.data.TestData.__init__:83 of +msgid "**cvtools test module**" msgstr "" -#: easyidp.roi.ROI.back2raw:1 easyidp.roi.ROI.back2raw:1::1 of -msgid "Projects several GIS coordintates ROIs (polygons) to all images" +#: easyidp.data.TestData.__init__:85 of +msgid "``.cv.out``" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`change_crs `\\ \\(target\\_crs\\)" +#: easyidp.data.TestData.__init__:87 of +msgid "**visualize test module**" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`clear `\\ \\(\\)" +#: easyidp.data.TestData.__init__:89 of +msgid "``.vis.out``" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`copy `\\ \\(\\)" +#: easyidp.data.TestData.__init__:92 of +msgid "The folder for saving temporary outputs, by default \"./tests/out\"" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.copy:1 of -msgid "make a deep copy of current file" +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +msgid "" +":py:obj:`__init__ `\\ " +"\\(\\[test\\_out\\]\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`crop `\\ \\(target\\[\\, " -"save\\_folder\\]\\)" +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +msgid ":py:obj:`load_data `\\ \\(\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`fromkeys `\\ \\(\\[value\\]\\)" +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +msgid ":py:obj:`reload_data `\\ \\(\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "Create a new dictionary with keys from iterable and values set to value." +#: ../../python_api/autodoc/easyidp.data.TestData.rst:24::1 +msgid ":py:obj:`remove_data `\\ \\(\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +#: ../../python_api/autodoc/easyidp.data.TestData.rst:31::1 +msgid ":py:obj:`gdrive_url `\\" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "Return the value for key if key is in the dictionary, else default." +#: ../../python_api/autodoc/easyidp.data.TestData.rst:31::1 +msgid ":py:obj:`name `\\" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`get_z_from_dsm `\\ \\(dsm\\[\\, " -"mode\\, kernel\\, buffer\\, ...\\]\\)" +#: ../../python_api/autodoc/easyidp.data.TestData.rst:31::1 +msgid ":py:obj:`size `\\" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.get_z_from_dsm:1 -#: of -msgid "get the z values (heights) from DSM for 2D polygon" +#: ../../python_api/autodoc/easyidp.data.download_all.rst:2 +msgid "easyidp.data.download\\_all" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`get_z_from_pcd `\\ \\(pcd\\[\\, " -"mode\\, kernel\\, buffer\\]\\)" +#: ../../python_api/data.rst:86::1 easyidp.data.download_all:1 of +msgid "download all datasets" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`is_geo `\\ \\(\\)" +#: ../../python_api/autodoc/easyidp.data.show_data_dir.rst:2 +msgid "easyidp.data.show\\_data\\_dir" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.is_geo:1 of -msgid "Returns True if the ROI is geo coordinate." +#: ../../python_api/data.rst:86::1 easyidp.data.show_data_dir:1 of +msgid "open the cached data files in cross-platform system default viewer." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`items `\\ \\(\\)" +#: easyidp.data.show_data_dir:5 of +msgid "It modified from this [1]_ webpage." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`keys `\\ \\(\\)" +#: easyidp.data.show_data_dir:9 of +msgid "" +"Python: Opening a folder in Explorer/Nautilus/Finder " +"https://stackoverflow.com/questions/6631299/python-opening-a-folder-in-" +"explorer-nautilus-finder" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`open `\\ \\(target\\_path\\, " -"\\*\\*kwargs\\)" +#: ../../python_api/autodoc/easyidp.data.url_checker.rst:2 +msgid "easyidp.data.url\\_checker" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.open:1 of -msgid "An advanced wrapper to open ROI without dealing with format" +#: ../../python_api/data.rst:86::1 easyidp.data.url_checker:1 of +msgid "Check if download url is accessable or not." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`pop `\\ \\(k\\[\\,d\\]\\)" +#: easyidp.data.url_checker:3 of +msgid "Modified from this [1]_ link." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "If key is not found, d is returned if given, otherwise KeyError is raised" +#: easyidp.data.url_checker:5 of +msgid "The url need to be checked" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`popitem `\\ \\(\\)" +#: easyidp.data.url_checker:10 of +msgid "https://pytutorial.com/check-url-is-reachable" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "Remove and return a (key, value) pair as a 2-tuple." +#: ../../python_api/autodoc/easyidp.data.user_data_dir.rst:2 +msgid "easyidp.data.user\\_data\\_dir" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`read_labelme_json `\\ " -"\\(json\\_path\\)" +#: ../../python_api/data.rst:86::1 easyidp.data.user_data_dir:1 of +msgid "Get OS specific data directory path for EasyIDP." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`read_shp `\\ \\(shp\\_path\\[\\, " -"shp\\_proj\\, name\\_field\\, ...\\]\\)" +#: easyidp.data.user_data_dir:3 of +msgid "file to be fetched from the data dir" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 easyidp.roi.ROI.read_shp:1 of -msgid "read ROI from shp file" +#: easyidp.data.user_data_dir:6 of +msgid "full path to the user-specific data dir" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "" -":py:obj:`setdefault `\\ \\(key\\[\\, " -"default\\]\\)" +#: easyidp.data.user_data_dir:11 of +msgid "Typical user data directories are:" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid "Insert key with a value of default if key is not in the dictionary." +#: easyidp.data.user_data_dir:19 of +msgid "" +"For Unix, we follow the XDG spec and support ``$XDG_DATA_HOME`` if " +"defined." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`update `\\ \\(\\[E\\, \\]\\*\\*F\\)" +#: easyidp.data.user_data_dir:21 of +msgid "Referenced from stackoverflow [1]_ then get github [2]_ ." msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of +#: easyidp.data.user_data_dir:25 of msgid "" -"If E is present and has a .keys() method, then does: for k in E: D[k] = " -"E[k] If E is present and lacks a .keys() method, then does: for k, v in " -"E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]" +"Python: Getting AppData folder in a cross-platform way " +"https://stackoverflow.com/questions/19078969/python-getting-appdata-" +"folder-in-a-cross-platform-way" msgstr "" -#: easyidp.roi.ROI.back2raw:1::1 of -msgid ":py:obj:`values `\\ \\(\\)" +#: easyidp.data.user_data_dir:26 of +msgid "" +"SwagLyrics-For-Spotify/swaglyrics/__init__.py " +"https://github.com/SwagLyrics/SwagLyrics-For-" +"Spotify/blob/master/swaglyrics/__init__.py#L8-L32" msgstr "" -#: easyidp.roi.ROI.back2raw:3 of -msgid "the object created by easyidp.ROI() or dictionary" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:2 +msgid "easyidp.geotiff.GeoTiff" msgstr "" -#: easyidp.roi.ROI.back2raw:5 of +#: ../../python_api/geotiff.rst:17::1 easyidp.geotiff.GeoTiff:1 of msgid "" -"the folder to save projected preview images and json files, by default " -"\"\"" +"A GeoTiff class, consisted by header information and file path to raw " +"file." msgstr "" -#: easyidp.roi.ROI.back2raw:7 of -msgid "" -"Whether do distortion correction, by default True (back to raw image with" -" lens distortion); If back to software corrected images without len " -"distortion, set it to False. (Pix4D support do this operation, seems " -"metashape not supported yet.)" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.__init__:1 of +msgid "The method to initialize the GeoTiff class" +msgstr "" + +#: easyidp.geotiff.GeoTiff.__init__:3 of +msgid "the path to geotiff file, by default \"\"" +msgstr "" + +#: easyidp.geotiff.GeoTiff.__init__:7 easyidp.geotiff.GeoTiff.crop_polygon:14 +#: easyidp.geotiff.GeoTiff.crop_rectangle:34 +#: easyidp.geotiff.GeoTiff.crop_rois:15 easyidp.geotiff.GeoTiff.geo2pixel:9 +#: easyidp.geotiff.GeoTiff.has_data:6 easyidp.geotiff.GeoTiff.pixel2geo:9 +#: easyidp.geotiff.GeoTiff.point_query:12 +#: easyidp.geotiff.GeoTiff.polygon_math:25 +#: easyidp.geotiff.GeoTiff.read_geotiff:7 easyidp.geotiff.geo2pixel:28 +#: easyidp.geotiff.get_header:10 easyidp.geotiff.get_imarray:10 +#: easyidp.geotiff.pixel2geo:11 easyidp.geotiff.point_query:25 +#: easyidp.geotiff.save_geotiff:14 easyidp.geotiff.tifffile_crop:49 +#: easyidp.geotools.convert_proj:13 easyidp.geotools.convert_proj3d:46 +#: easyidp.geotools.is_single_point:10 easyidp.jsonfile.dict2json:14 +#: easyidp.jsonfile.read_geojson:21 easyidp.jsonfile.read_json:9 +#: easyidp.jsonfile.show_geojson_fields:7 +#: easyidp.metashape.Metashape.__init__:13 +#: easyidp.metashape.Metashape.back2raw:18 +#: easyidp.metashape.Metashape.back2raw_crs:19 +#: easyidp.metashape.Metashape.get_photo_position:14 +#: easyidp.metashape.Metashape.open_chunk:9 +#: easyidp.metashape.Metashape.open_project:9 +#: easyidp.metashape.Metashape.show_roi_on_img:25 +#: easyidp.metashape.Metashape.sort_img_by_distance:19 +#: easyidp.metashape.read_chunk_zip:60 easyidp.metashape.read_project_zip:38 +#: easyidp.pix4d.Pix4D.__init__:12 easyidp.pix4d.Pix4D.back2raw:22 +#: easyidp.pix4d.Pix4D.back2raw_crs:23 +#: easyidp.pix4d.Pix4D.get_photo_position:14 easyidp.pix4d.Pix4D.load_dom:7 +#: easyidp.pix4d.Pix4D.load_dsm:7 easyidp.pix4d.Pix4D.load_pcd:25 +#: easyidp.pix4d.Pix4D.open_project:12 easyidp.pix4d.Pix4D.show_roi_on_img:25 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:19 +#: easyidp.pix4d.parse_p4d_param_folder:23 easyidp.pix4d.parse_p4d_project:40 +#: easyidp.pix4d.read_cam_ssk:51 easyidp.pix4d.read_campos_geo:31 +#: easyidp.pix4d.read_ccp:53 easyidp.pix4d.read_cicp:35 +#: easyidp.pix4d.read_pmat:30 easyidp.pix4d.read_xyz:18 +#: easyidp.pointcloud.PointCloud.__init__:17 +#: easyidp.pointcloud.PointCloud.crop_point_cloud:9 +#: easyidp.pointcloud.PointCloud.crop_rois:14 +#: easyidp.pointcloud.PointCloud.offset:8 +#: easyidp.pointcloud.PointCloud.read_point_cloud:11 +#: easyidp.pointcloud.PointCloud.update_offset_value:7 +#: easyidp.pointcloud.PointCloud.write_point_cloud:7 +#: easyidp.pointcloud.read_las:10 easyidp.pointcloud.read_laz:10 +#: easyidp.pointcloud.read_ply:10 easyidp.pointcloud.write_las:17 +#: easyidp.pointcloud.write_laz:17 easyidp.pointcloud.write_ply:17 +#: easyidp.reconstruct.save_back2raw_json_and_png:9 easyidp.roi.ROI.__init__:7 +#: easyidp.roi.ROI.back2raw:61 easyidp.roi.ROI.change_crs:7 +#: easyidp.roi.ROI.crop:14 easyidp.roi.ROI.get_z_from_dsm:51 +#: easyidp.roi.ROI.open:7 easyidp.roi.ROI.read_geojson:11 +#: easyidp.roi.ROI.read_labelme_json:7 easyidp.roi.ROI.read_shp:17 +#: easyidp.shp.read_proj:9 easyidp.shp.read_shp:27 +#: easyidp.shp.show_shp_fields:9 easyidp.visualize.draw_backward_one_roi:24 +#: easyidp.visualize.draw_polygon_on_img:25 of +msgid "示例" msgstr "" -#: easyidp.roi.ROI.back2raw:11 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 msgid "" -"None: strickly in image area; 'x': only y (vertical) in image area, x can" -" outside image; 'y': only x (horizontal) in image area, y can outside " -"image." +":py:obj:`__init__ `\\ " +"\\(\\[tif\\_path\\]\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:15 of -msgid "whether print log for debugging, by default False" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid "" +":py:obj:`crop_polygon `\\ " +"\\(polygon\\_hv\\[\\, is\\_geo\\, save\\_path\\]\\)" msgstr "" -#: easyidp.roi.ROI.back2raw:18 of -msgid ":obj:`easyidp.pix4d.back2raw`, :obj:`easyidp.metashape.back2raw`" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.crop_polygon:1 of +msgid "Crop a given polygon from geotiff" msgstr "" -#: easyidp.roi.ROI.crop:3 easyidp.roi.ROI.get_z_from_dsm:3 of -msgid "the path of dsm, or the GeoTiff object from idp.GeoTiff()" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid "" +":py:obj:`crop_rectangle `\\ " +"\\(left\\, top\\, w\\, h\\[\\, is\\_geo\\, ...\\]\\)" msgstr "" -#: easyidp.roi.ROI.crop:13 of -msgid ":obj:`easyidp.GeoTiff.crop`" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.crop_rectangle:1 of +msgid "Extract a rectangle regeion crop from a GeoTIFF image file." msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:5 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 msgid "" -"the mode to calculate z values, option in \"point\" and \"face\" " -"**point**: get height on each vertex, result in different values for each" -" vertex **face**: get height on polygon face, result in the same value " -"for each vertex" +":py:obj:`crop_rois `\\ \\(roi\\[\\, " +"is\\_geo\\, save\\_folder\\]\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:9 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.geotiff.GeoTiff.crop_rois:1 easyidp.roi.ROI.crop:1 of msgid "" -"The math kernal to calculate the z value. [\"mean\", \"min\", \"max\", " -"\"pmin5\", \"pmin10\", \"pmax5\", \"pmax10\"], by default 'mean'" +"Crop several ROIs from the geotiff by given object with several " +"polygons and polygon names" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:12 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 msgid "" -"the buffer of ROI, by default 0 (no buffer), can be positive values or -1" -" (using all map), please check the Notes section for more details" +":py:obj:`geo2pixel `\\ " +"\\(polygon\\_hv\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:16 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: ../../python_api/geotiff.rst:36::1 +#: easyidp.geotiff.GeoTiff.geo2pixel:1 easyidp.geotiff.GeoTiff.pixel2geo:1 +#: easyidp.geotiff.pixel2geo:1 of msgid "" -"When the crs is not the save with DSM crs, where change the ROI crs to " -"fit DSM. **False** (default): change ROI's CRS; **True**: not change " -"ROI's CRS, only attach the z value to current coordinate." +"Convert geotiff pixel coordinate (horizontal, vertical) to point cloud " +"xyz coordinate (x, y, z)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:23 of -msgid "**Option details for** ``kernal`` **parameter**" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid ":py:obj:`has_data `\\ \\(\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:28 of -msgid "\"pmin5\": 5th *percentile mean* inside polygon" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.has_data:1 of +msgid "Return True if current objects has geotiff infomation" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:29 of -msgid "\"pmin10\": 10th *percentile mean* inside polygon" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid "" +":py:obj:`pixel2geo `\\ " +"\\(polygon\\_hv\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:30 of -msgid "\"pmax5\": 95th *percentile mean* inside polygon" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid "" +":py:obj:`point_query `\\ " +"\\(points\\_hv\\[\\, is\\_geo\\]\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:31 of -msgid "\"pmax10\": 90th *percentile mean* inside polygon" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: ../../python_api/geotiff.rst:36::1 +#: easyidp.geotiff.GeoTiff.point_query:1 easyidp.geotiff.point_query:1 of +msgid "Get the pixel value of given point(s)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:33 of +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 msgid "" -"percentile mean: the mean value of all pixels over/under xth percentile " -"threshold" +":py:obj:`polygon_math `\\ " +"\\(polygon\\_hv\\[\\, is\\_geo\\, kernel\\]\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:35 of -msgid "**Option details for** ``buffer`` **parameter**" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.polygon_math:1 of +msgid "Calculate the valus inside given polygon" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:37 of -msgid "0: not using buffer" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +msgid "" +":py:obj:`read_geotiff `\\ " +"\\(tif\\_path\\)" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:38 of -msgid "-1: ignore given polygon, using the full dsm to calculate the height" +#: ../../python_api/autodoc/easyidp.geotiff.GeoTiff.rst:30::1 +#: easyidp.geotiff.GeoTiff.read_geotiff:1 of +msgid "Open and get the meta information (header) from geotiff" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:39 of -msgid "" -"float: buffer distance, the unit of buffer follows the ROI coordinates, " -"either pixel or meter." +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`crs `\\" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:41 of +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.crs:1 of msgid "" -"If mode is \"point\", will generate a round buffer polygon first, then " -"extract the z-value by this region, but the return will only be a single " -"point." +"A quick access to ``self.header['crs']``, please access the ``header`` " +"dict to change value" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:43 of -msgid "" -"If mode is \"face\", will buffer the polygon and then calculate the " -"height inside the buffered polygon" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`dim `\\" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:-1 of -msgid "roi_crop_mode.png" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.dim:1 of +msgid "" +"A quick access to ``self.header['dim']``, please access the ``header`` " +"dict to change value" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:50 of -msgid "Combine" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`height `\\" msgstr "" -#: easyidp.roi.ROI.get_z_from_dsm:52 of -msgid ":obj:`easyidp.GeoTiff.math_polygon`" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.height:1 of +msgid "" +"A quick access to ``self.header['height']``, please access the ``header``" +" dict to change value" msgstr "" -#: easyidp.roi.ROI.open:3 of -msgid "the path to roi files, current support \\*.shp and labelme.json" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`nodata `\\" msgstr "" -#: easyidp.roi.ROI.open:8 of +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.nodata:1 of msgid "" -"You can also pass several control parameters in this function, please " -"refer see also for more information" +"A quick access to ``self.header['nodata']``, please access the ``header``" +" dict to change value" msgstr "" -#: easyidp.roi.ROI.open:10 of -msgid ":obj:`read_shp`, :obj:`read_labelme_json`" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`scale `\\" msgstr "" -#: easyidp.roi.ROI.read_shp:3 easyidp.shp.read_shp:3 -#: easyidp.shp.show_shp_fields:3 of -msgid "the file path of \\*.shp" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.scale:1 of +msgid "" +"A quick access to ``self.header['scale']``, please access the ``header`` " +"dict to change value" msgstr "" -#: easyidp.roi.ROI.read_shp:5 easyidp.shp.read_shp:5 of -msgid "" -"by default None, will read automatically from prj file with the same name" -" of shp filename, or give manually by ``read_shp(..., " -"shp_proj=pyproj.CRS.from_epsg(4326), ...)`` or ``read_shp(..., " -"shp_proj=r'path/to/{shp_name}.prj', ...)``" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`tie_point `\\" msgstr "" -#: easyidp.roi.ROI.read_shp:9 easyidp.shp.read_shp:9 of +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.tie_point:1 of msgid "" -"by default None, the id or name of shp file fields as output dictionary " -"keys" +"A quick access to ``self.header['tie_point']``, please access the " +"``header`` dict to change value" msgstr "" -#: easyidp.roi.ROI.read_shp:11 easyidp.shp.read_shp:11 of -msgid "by default False, whether add column name to roi key." +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`width `\\" msgstr "" -#: easyidp.roi.ROI.read_shp:13 easyidp.shp.read_shp:13 of -msgid "by default 'utf-8', for some chinese characters, 'gbk' may required" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.width:1 of +msgid "" +"A quick access to ``self.header['width']``, please access the ``header`` " +"dict to change value" msgstr "" -#: easyidp.roi.ROI.read_shp:18 of -msgid "For details of this parameters, please refer to see also." +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`file_path `\\" msgstr "" -#: easyidp.roi.ROI.read_shp:20 of -msgid ":obj:`easyidp.shp.read_shp`" +#: ../../docstring easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.file_path:1 of +msgid "The file path of current GeoTiff" msgstr "" -#: ../../python_api/autodoc/easyidp.roi.read_cc_txt.rst:2 -msgid "easyidp.roi.read\\_cc\\_txt" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`header `\\" msgstr "" -#: ../../python_api/roi.rst:28::1 easyidp.roi.read_cc_txt:1 of -msgid "Read the point cloud annotation made by cloudcompare" +#: ../../docstring easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.header:1 of +msgid "The Geotiff meta infomation" msgstr "" -#: easyidp.roi.read_cc_txt:3 of -msgid "The path to cloudcompare annotation txt file" +#: easyidp.geotiff.GeoTiff.crop_polygon:1::1 of +msgid ":py:obj:`imarray `\\" msgstr "" -#: ../../python_api/autodoc/easyidp.shp.convert_proj.rst:2 -msgid "easyidp.shp.convert\\_proj" +#: ../../docstring easyidp.geotiff.GeoTiff.crop_polygon:1::1 +#: easyidp.geotiff.GeoTiff.imarray:1 of +msgid "The numpy ndarray of GeoTiff images" msgstr "" -#: ../../python_api/shp.rst:22::1 easyidp.shp.convert_proj:1 of -msgid "Provide the geo coordinate transfrom based on pyproj package" +#: easyidp.geotiff.GeoTiff.crop_polygon:3 +#: easyidp.geotiff.GeoTiff.polygon_math:3 of +msgid "(horizontal, vertical) points" msgstr "" -#: easyidp.shp.convert_proj:3 of -msgid "the output of read_shp() function" +#: easyidp.geotiff.GeoTiff.crop_polygon:5 +#: easyidp.geotiff.GeoTiff.crop_rectangle:25 +#: easyidp.geotiff.GeoTiff.crop_rois:6 easyidp.geotiff.GeoTiff.polygon_math:5 +#: easyidp.pointcloud.PointCloud.crop_rois:6 easyidp.roi.ROI.crop:5 of +msgid "" +"whether the given polygon is pixel coords on imarray or geo coords " +"(default)" msgstr "" -#: easyidp.shp.convert_proj:5 of -msgid "the hidden output of read_shp(..., return_proj=True)" +#: easyidp.geotiff.GeoTiff.crop_polygon:7 of +msgid "if given, will save the cropped as \\*.tif file to path, by default None" msgstr "" -#: easyidp.shp.convert_proj:7 of -msgid "Examples: [1] pyproj.CRS.from_epsg(4326) [2] r'path/to/{shp_name}.prj'," +#: easyidp.geotiff.GeoTiff.crop_polygon:10 of +msgid "The cropped numpy pixels imarray" msgstr "" -#: ../../python_api/autodoc/easyidp.shp.read_proj.rst:2 -msgid "easyidp.shp.read\\_proj" +#: easyidp.geotiff.GeoTiff.crop_polygon:15 easyidp.geotiff.GeoTiff.crop_rois:16 +#: easyidp.geotiff.GeoTiff.geo2pixel:10 easyidp.geotiff.GeoTiff.pixel2geo:10 +#: easyidp.geotiff.GeoTiff.polygon_math:26 easyidp.geotiff.save_geotiff:15 +#: easyidp.pointcloud.write_las:18 easyidp.pointcloud.write_laz:18 +#: easyidp.pointcloud.write_ply:18 of +msgid "Prepare data:" msgstr "" -#: ../../python_api/shp.rst:22::1 easyidp.shp.read_proj:1 of -msgid "read \\*.prj file to pyproj object" +#: easyidp.geotiff.GeoTiff.crop_polygon:36 easyidp.geotiff.GeoTiff.crop_rois:46 +#: easyidp.geotiff.GeoTiff.geo2pixel:28 easyidp.geotiff.GeoTiff.pixel2geo:29 +#: easyidp.geotiff.GeoTiff.polygon_math:44 easyidp.jsonfile.read_json:17 +#: easyidp.pointcloud.PointCloud.write_point_cloud:34 +#: easyidp.pointcloud.write_las:44 easyidp.pointcloud.write_laz:44 +#: easyidp.pointcloud.write_ply:44 +#: easyidp.reconstruct.save_back2raw_json_and_png:24 of +msgid "Use this function:" msgstr "" -#: easyidp.shp.read_proj:3 of -msgid "the file path of shp \\*.prj" +#: easyidp.geotiff.GeoTiff.crop_polygon:44 of +msgid "If you want to save the previous as new GeoTiff:" msgstr "" -#: easyidp.shp.read_proj:6 of -msgid "**proj**" +#: easyidp.geotiff.GeoTiff.crop_rectangle:17 of +msgid "Coordinates of" msgstr "" -#: ../../python_api/autodoc/easyidp.shp.read_shp.rst:2 -msgid "easyidp.shp.read\\_shp" +#: easyidp.geotiff.GeoTiff.crop_rectangle:19 of +msgid "Coordinates of the top left corner of the desired crop." msgstr "" -#: ../../python_api/shp.rst:22::1 easyidp.shp.read_shp:1 of -msgid "read shp file to python numpy object" +#: easyidp.geotiff.GeoTiff.crop_rectangle:21 easyidp.geotiff.tifffile_crop:30 +#: of +msgid "Desired crop height." msgstr "" -#: easyidp.shp.read_shp:15 of -msgid "" -"by default False, if given as true, will return extra pyproj.CRS object " -"of current shp file." +#: easyidp.geotiff.GeoTiff.crop_rectangle:23 easyidp.geotiff.tifffile_crop:32 +#: of +msgid "Desired crop width." msgstr "" -#: easyidp.shp.read_shp:18 of -msgid "" -"* *dict,* -- the dictionary with read numpy polygon coordinates .. " -"code-block:: python {'id1': np.array([[x1,y1],[x2,y2],...])," -" 'id2': np.array([[x1,y1],[x2,y2],...]),...} * *pyproj.CRS, " -"optional* -- once set return_proj=True" +#: easyidp.geotiff.GeoTiff.crop_rectangle:27 of +msgid "if given, will save the cropped as \\*.tif file to path" msgstr "" -#: easyidp.shp.read_shp:18 of -msgid "*dict,* -- the dictionary with read numpy polygon coordinates" +#: easyidp.geotiff.GeoTiff.crop_rectangle:30 of +msgid "Extracted crop." msgstr "" -#: easyidp.shp.read_shp:24 of -msgid "*pyproj.CRS, optional* -- once set return_proj=True" +#: easyidp.geotiff.GeoTiff.crop_rectangle:46 easyidp.geotiff.tifffile_crop:58 +#: of +msgid "It is not recommended to use without specifying parameters like this:" msgstr "" -#: easyidp.shp.read_shp:28 of -msgid "The example shp file has the following columns:" +#: easyidp.geotiff.GeoTiff.crop_rectangle:48 easyidp.geotiff.tifffile_crop:60 +#: of +msgid "``crop_rectiange(434, 918, 320, 321)``" msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[0] ID" +#: easyidp.geotiff.GeoTiff.crop_rectangle:50 of +msgid "It is hard to know the exactly order" msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[1] MASSIFID" +#: easyidp.geotiff.GeoTiff.crop_rectangle:54 of +msgid "" +"subfunction :func:`easyidp.geotiff.tifffile_crop` has the order ``(top, " +"left, h, w)`` which is too heavy to change it." msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[2] CROPTYPE" +#: easyidp.geotiff.GeoTiff.crop_rectangle:56 of +msgid ":obj:`easyidp.geotiff.tifffile_crop`" msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[3] CROPDATE" +#: easyidp.geotiff.GeoTiff.crop_rois:3 of +msgid "" +"the object created by easyidp.ROI(), or dictionary with multiple " +"polygons. If you just need crop single polygon with ndarray coordinates, " +"please use GeoTiff.crop_polygon() instead." msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[4] CROPAREA" +#: easyidp.geotiff.GeoTiff.crop_rois:8 of +msgid "" +"the folder to save cropped images, use ROI indices as file_names, by " +"default \"\", means not save." msgstr "" -#: easyidp.shp.read_shp:31 of -msgid "[5] ATTID" +#: easyidp.geotiff.GeoTiff.crop_rois:11 easyidp.roi.ROI.crop:10 of +msgid "The dictionary with key=id and value=ndarray data" msgstr "" -#: easyidp.shp.read_shp:33 of -msgid "23010...0000" +#: easyidp.geotiff.GeoTiff.crop_rois:56 of +msgid "If you want automatically save geotiff results to specific folder:" msgstr "" -#: easyidp.shp.read_shp:33 of -msgid "小麦" +#: easyidp.geotiff.GeoTiff.geo2pixel:3 easyidp.geotiff.GeoTiff.pixel2geo:3 +#: easyidp.geotiff.geo2pixel:3 easyidp.geotiff.pixel2geo:3 of +msgid "[horizontal, vertical] points" msgstr "" -#: easyidp.shp.read_shp:33 easyidp.shp.read_shp:35 easyidp.shp.read_shp:37 -#: easyidp.shp.read_shp:39 easyidp.shp.read_shp:41 easyidp.shp.read_shp:45 -#: easyidp.shp.read_shp:47 easyidp.shp.read_shp:49 easyidp.shp.read_shp:51 -#: easyidp.shp.read_shp:53 of -msgid "2018-09-01" +#: easyidp.geotiff.GeoTiff.geo2pixel:39 of +msgid ":obj:`easyidp.geotiff.geo2pixel`" msgstr "" -#: easyidp.shp.read_shp:33 of -msgid "61525.26302" +#: easyidp.geotiff.GeoTiff.pixel2geo:40 of +msgid ":obj:`easyidp.geotiff.pixel2geo`" msgstr "" -#: easyidp.shp.read_shp:35 of -msgid "23010...0012" +#: easyidp.geotiff.GeoTiff.point_query:3 of +msgid "| The coordinates of qurey points, in order (horizontal, vertical)" msgstr "" -#: easyidp.shp.read_shp:35 of -msgid "蔬菜" +#: easyidp.geotiff.GeoTiff.point_query of +msgid "The coordinates of qurey points, in order (horizontal, vertical)" msgstr "" -#: easyidp.shp.read_shp:35 of -msgid "2802.33512" +#: easyidp.geotiff.GeoTiff.point_query:5 of +msgid "" +"| The given polygon is geo coords ( ``True`` , default) or pixel coords (" +" ``False`` ) on imarray." msgstr "" -#: easyidp.shp.read_shp:37 of -msgid "23010...0014" +#: easyidp.geotiff.GeoTiff.point_query of +msgid "" +"The given polygon is geo coords ( ``True`` , default) or pixel coords ( " +"``False`` ) on imarray." msgstr "" -#: easyidp.shp.read_shp:37 easyidp.shp.read_shp:41 of -msgid "玉米" +#: easyidp.geotiff.GeoTiff.point_query:8 of +msgid "the obtained pixel value (RGB or height)" msgstr "" -#: easyidp.shp.read_shp:37 of -msgid "6960.7745" +#: easyidp.geotiff.GeoTiff.point_query:13 of +msgid "Prequirements" msgstr "" -#: easyidp.shp.read_shp:39 of -msgid "23010...0061" +#: easyidp.geotiff.GeoTiff.point_query:20 of +msgid "Query one point by tuple" msgstr "" -#: easyidp.shp.read_shp:39 of -msgid "牧草" +#: easyidp.geotiff.GeoTiff.point_query:29 of +msgid "Query one point by list" msgstr "" -#: easyidp.shp.read_shp:39 of -msgid "25349.08639" +#: easyidp.geotiff.GeoTiff.point_query:38 of +msgid "Query several points by list" msgstr "" -#: easyidp.shp.read_shp:41 of -msgid "23010...0062" +#: easyidp.geotiff.GeoTiff.point_query:49 of +msgid "Query several points by numpy" msgstr "" -#: easyidp.shp.read_shp:41 of -msgid "71463.27666" +#: easyidp.geotiff.GeoTiff.point_query:60 of +msgid ":obj:`easyidp.geotiff.point_query`" msgstr "" -#: easyidp.shp.read_shp:43 of -msgid "..." +#: easyidp.geotiff.GeoTiff.polygon_math:7 of +msgid "" +"The method to calculate polygon summary, options are: [\"mean\", \"min\"," +" \"max\", \"pmin5\", \"pmin10\", \"pmax5\", \"pmax10\"], please check " +"notes section for more details." msgstr "" -#: easyidp.shp.read_shp:45 of -msgid "23010...0582" +#: easyidp.geotiff.GeoTiff.polygon_math:12 of +msgid "Option details for ``kernel`` parameter:" msgstr "" -#: easyidp.shp.read_shp:45 of -msgid "胡萝卜" +#: easyidp.geotiff.GeoTiff.polygon_math:14 of +msgid "\"mean\": the mean value inside polygon" msgstr "" -#: easyidp.shp.read_shp:45 of -msgid "288.23876" +#: easyidp.geotiff.GeoTiff.polygon_math:15 of +msgid "\"min\": the minimum value inside polygon" msgstr "" -#: easyidp.shp.read_shp:47 of -msgid "23010...0577" +#: easyidp.geotiff.GeoTiff.polygon_math:16 of +msgid "\"max\": the maximum value inside polygon" msgstr "" -#: easyidp.shp.read_shp:47 of -msgid "杂豆" +#: easyidp.geotiff.GeoTiff.polygon_math:17 of +msgid "\"pmin5\": 5th [percentile mean]_ inside polygon" msgstr "" -#: easyidp.shp.read_shp:47 of -msgid "2001.80384" +#: easyidp.geotiff.GeoTiff.polygon_math:18 of +msgid "\"pmin10\": 10th [percentile mean]_ inside polygon" msgstr "" -#: easyidp.shp.read_shp:49 of -msgid "23010...0583" +#: easyidp.geotiff.GeoTiff.polygon_math:19 of +msgid "\"pmax5\": 95th [percentile mean]_ inside polygon" msgstr "" -#: easyidp.shp.read_shp:49 of -msgid "大豆" +#: easyidp.geotiff.GeoTiff.polygon_math:20 of +msgid "\"pmax10\": 90th [percentile mean]_ inside polygon" msgstr "" -#: easyidp.shp.read_shp:49 of -msgid "380.41704" +#: easyidp.geotiff.GeoTiff.polygon_math:56 of +msgid "" +"This function is initially designed for doing some simple calculations " +"one band (layer) geotiff." msgstr "" -#: easyidp.shp.read_shp:51 of -msgid "23010...0584" +#: easyidp.geotiff.GeoTiff.polygon_math:58 of +msgid "" +"If you applying this function on RGB color geotiff, it will return the " +"calculated results of each layer" msgstr "" -#: easyidp.shp.read_shp:51 easyidp.shp.read_shp:53 of -msgid "其它" +#: easyidp.geotiff.GeoTiff.polygon_math:65 of +msgid "The four values are RGBA four color channels." msgstr "" -#: easyidp.shp.read_shp:51 of -msgid "9133.25998" +#: easyidp.geotiff.GeoTiff.read_geotiff:3 easyidp.geotiff.get_imarray:3 of +msgid "the path to geotiff file" msgstr "" -#: easyidp.shp.read_shp:53 of -msgid "23010...0585" +#: easyidp.geotiff.GeoTiff.read_geotiff:8 of +msgid "Though this function can be used by:" msgstr "" -#: easyidp.shp.read_shp:53 of -msgid "1704.27193" +#: easyidp.geotiff.GeoTiff.read_geotiff:17 of +msgid "" +"It is highly recommended to specify the geotiff path when initializing " +"the geotiff object:" msgstr "" -#: easyidp.shp.read_shp:56 of -msgid "First, prepare data" +#: ../../python_api/autodoc/easyidp.geotiff.geo2pixel.rst:2 +msgid "easyidp.geotiff.geo2pixel" msgstr "" -#: easyidp.shp.read_shp:63 of -msgid "Then using the second column ``MASSIFID`` as shape keys:" +#: ../../python_api/geotiff.rst:36::1 easyidp.geotiff.geo2pixel:1 +#: of +msgid "" +"Convert point cloud xyz coordinate to geotiff pixel coordinate " +"(horizontal, vertical)" msgstr "" -#: easyidp.shp.read_shp:79 of -msgid "" -"Due to the duplication of ``CROPTYPE``, you can not using it as the " -"unique key, but you can combine several columns together by passing a " -"list to ``name_field``:" +#: easyidp.geotiff.geo2pixel:5 easyidp.geotiff.pixel2geo:5 +#: easyidp.geotiff.point_query easyidp.geotiff.save_geotiff:3 of +msgid "the geotiff head dictionary from get_header()" msgstr "" -#: easyidp.shp.read_shp:91 of -msgid "And you can also add column_names to id by ``include_title=True`` :" +#: easyidp.geotiff.geo2pixel:7 of +msgid "" +"if false: will get float coordinates -> (23.5, 27.8) if true: will get " +"int pixel index -> (23, 27)" msgstr "" -#: ../../python_api/autodoc/easyidp.shp.show_shp_fields.rst:2 -msgid "easyidp.shp.show\\_shp\\_fields" +#: easyidp.geotiff.geo2pixel:11 of +msgid "pixel position of these points (horizontal, vertical)" msgstr "" -#: ../../python_api/shp.rst:22::1 easyidp.shp.show_shp_fields:1 of -msgid "Read shp field data to pandas.DataFrame, for further json metadata usage" +#: easyidp.geotiff.geo2pixel:16 of +msgid "" +"Please note: gis UTM coordinate, horizontal is x axis, vertical is y " +"axis, origin at left upper." msgstr "" -#: easyidp.shp.show_shp_fields:5 of -msgid "default is 'utf-8', however, or some chinese characters, 'gbk' is required" +#: easyidp.geotiff.geo2pixel:18 of +msgid "To crop image ndarray:" msgstr "" -#: ../../python_api/cvtools.rst:3 -msgid "• cvtools" +#: easyidp.geotiff.geo2pixel:20 of +msgid "the first columns is vertical pixel (along height)," msgstr "" -#: ../../python_api/cvtools.rst:7 -msgid "" -"This is a package for simple imarray operations without scikit-image. " -"Mainly about creating binary masks from given polygon coordinates." +#: easyidp.geotiff.geo2pixel:21 of +msgid "the second columns is horizontal pixel number (along width)," msgstr "" -#: ../../python_api/cvtools.rst:10 -msgid "It is a submodule for the ``GeoTiff`` class." +#: easyidp.geotiff.geo2pixel:22 of +msgid "the third columns is 3 or 4 bands (RGB, alpha)," msgstr "" -#: ../../python_api/cvtools.rst:13 ../../python_api/data.rst:56 -#: ../../python_api/geotiff.rst:19 ../../python_api/json.rst:11 -#: ../../python_api/pointcloud.rst:19 ../../python_api/roi.rst:19 -#: ../../python_api/shp.rst:10 -msgid "Functions" +#: easyidp.geotiff.geo2pixel:23 of +msgid "the x and y is reversed compared with gis coordinates." msgstr "" -#: ../../python_api/cvtools.rst:19::1 +#: easyidp.geotiff.geo2pixel:25 of msgid "" -":py:obj:`imarray_crop `\\ \\(imarray\\, " -"polygon\\_hv\\[\\, ...\\]\\)" +"This function has already do this reverse, so that you can use the output" +" directly." msgstr "" -#: ../../python_api/cvtools.rst:19::1 -msgid "" -":py:obj:`poly2mask `\\ \\(image\\_shape\\, " -"poly\\_coord\\[\\, engine\\]\\)" +#: easyidp.geotiff.geo2pixel:51 of +msgid ":func:`easyidp.GeoTiff.geo2pixel `" msgstr "" -#: ../../python_api/data.rst:3 -msgid "Data" +#: ../../python_api/autodoc/easyidp.geotiff.get_header.rst:2 +msgid "easyidp.geotiff.get\\_header" msgstr "" -#: ../../python_api/data.rst:8 -msgid "Dataset" +#: ../../python_api/geotiff.rst:36::1 easyidp.geotiff.get_header:1 +#: of +msgid "Read the necessary meta infomation from TIFF file" msgstr "" -#: ../../python_api/data.rst:10 -msgid "**Quick usage**" +#: easyidp.geotiff.get_header:3 of +msgid "the path to the geotiff file" msgstr "" -#: ../../python_api/data.rst:29 -msgid "All the dataset is in the following format:" +#: easyidp.geotiff.get_header:6 of +msgid "**header** -- the container of acquired meta info" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:1 of -msgid "The dataset has the following properties (almost in string type)" +#: ../../python_api/autodoc/easyidp.geotiff.get_imarray.rst:2 +msgid "easyidp.geotiff.get\\_imarray" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:3 of -msgid "name" +#: ../../python_api/geotiff.rst:36::1 +#: easyidp.geotiff.get_imarray:1 of +msgid "" +"Read full map data as numpy array (time and RAM costy, not recommended, " +"often requires ``4 x file_size`` of RAM)" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:4 of -msgid "The dataset name" +#: easyidp.geotiff.get_imarray:6 of +msgid "**data** -- the obtained image data" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:5 of -msgid "url_list" +#: ../../python_api/autodoc/easyidp.geotiff.pixel2geo.rst:2 +msgid "easyidp.geotiff.pixel2geo" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:6 of -msgid "The possible download urls" +#: easyidp.geotiff.pixel2geo:31 of +msgid ":func:`easyidp.GeoTiff.pixel2geo `" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:7 of -msgid "size" +#: ../../python_api/autodoc/easyidp.geotiff.point_query.rst:2 +msgid "easyidp.geotiff.point\\_query" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:8 of -msgid "Ths size of zipped file" +#: easyidp.geotiff.point_query:3 easyidp.geotiff.tifffile_crop:20 of +msgid "TIFF image file directory (IFD) from which the crop must be extracted." msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:9 of -msgid "data_dir" +#: easyidp.geotiff.point_query:5 of +msgid "" +"| 1. one point tuple | e.g. (34.57, 45.62) | 2. one point list | " +"e.g. [34.57, 45.62] | 3. points lists | e.g. [[34.57, 45.62],[35.57, " +"46.62]] | 4. 2d numpy array | e.g. np.array([[34.57, 45.62],[35.57, " +"46.62]])" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:10 of -msgid "The final dataset directory" +#: easyidp.geotiff.point_query of +msgid "1. one point tuple" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:11 of -msgid "zip_file" +#: easyidp.geotiff.point_query of +msgid "e.g. (34.57, 45.62)" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:12 of -msgid "The *temporary* downloaded zip file path (won't be used in)" +#: easyidp.geotiff.point_query of +msgid "2. one point list" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:13 of -msgid "shp" +#: easyidp.geotiff.point_query of +msgid "e.g. [34.57, 45.62]" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:14 of -msgid "The path to plot ROI shapefile (\\*.shp)" +#: easyidp.geotiff.point_query of +msgid "3. points lists" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:16 of -msgid "photo" +#: easyidp.geotiff.point_query of +msgid "e.g. [[34.57, 45.62],[35.57, 46.62]]" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:16 of -msgid "The folder path to the raw photos" +#: easyidp.geotiff.point_query of +msgid "4. 2d numpy array" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:18 of -msgid "pix4d.proj" +#: easyidp.geotiff.point_query of +msgid "e.g. np.array([[34.57, 45.62],[35.57, 46.62]])" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:19 of -msgid "The pix4d project folder" +#: easyidp.geotiff.point_query:14 of +msgid "" +"| the geotiff head dictionary from get_header() | if specified, will view" +" the `points_hv` as geo position | e.g. [longtitude, latitude] | if " +"not specified, will view as pixel index | e.g. [1038, 567] -> pixel " +"id" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:20 of -msgid "pix4d.param" +#: easyidp.geotiff.point_query of +msgid "if specified, will view the `points_hv` as geo position" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:21 of -msgid "The parameter folder of pix4d porject" +#: easyidp.geotiff.point_query of +msgid "e.g. [longtitude, latitude]" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:22 of -msgid "pix4d.dom" +#: easyidp.geotiff.point_query of +msgid "if not specified, will view as pixel index" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:23 -#: easyidp.data.EasyidpDataSet.__init__:34 of -msgid "The generated DOM path of plot map" +#: easyidp.geotiff.point_query of +msgid "e.g. [1038, 567] -> pixel id" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:24 of -msgid "pix4d.dsm" +#: easyidp.geotiff.point_query:21 of +msgid "**values** -- the obtained pixel value (RGB or height)" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:25 -#: easyidp.data.EasyidpDataSet.__init__:36 of -msgid "The generated DSM path of plot map" +#: easyidp.geotiff.point_query:54 of +msgid ":func:`easyidp.GeoTiff.point_query `" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:27 of -msgid "pix4d.pcd" +#: ../../python_api/autodoc/easyidp.geotiff.save_geotiff.rst:2 +msgid "easyidp.geotiff.save\\_geotiff" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:27 -#: easyidp.data.EasyidpDataSet.__init__:38 of -msgid "The generated pointcloud path of plot map" +#: ../../python_api/geotiff.rst:36::1 +#: easyidp.geotiff.save_geotiff:1 of +msgid "Save cropped region to geotiff file" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:29 of -msgid "metashape.proj" +#: easyidp.geotiff.save_geotiff:5 of +msgid "(m, n, d) image ndarray cropped from `crop_polygon`" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:30 of -msgid "The metashape project file" +#: easyidp.geotiff.save_geotiff:7 of +msgid "| the pixel position of image top left cornder, | the order is (left, top)" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:31 of -msgid "metashape.param" +#: easyidp.geotiff.save_geotiff of +msgid "the pixel position of image top left cornder," msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:32 of -msgid "The parameter folder of metashape porject" +#: easyidp.geotiff.save_geotiff of +msgid "the order is (left, top)" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:33 of -msgid "metashape.dom" +#: easyidp.geotiff.save_geotiff:10 of +msgid "the save to geotiff file path" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:35 of -msgid "metashape.dsm" +#: easyidp.geotiff.save_geotiff:25 of +msgid "If want to move each 20 pixels of this geotiff to right and bottom" msgstr "" -#: easyidp.data.EasyidpDataSet.__init__:37 of -msgid "metashape.pcd" +#: easyidp.geotiff.save_geotiff:33 of +msgid "Then using the QGIS to compare between input and output:" msgstr "" -#: easyidp.data.EasyidpDataSet.load_data:1 of -msgid "Download dataset from Google Drive to user AppData folder" +#: easyidp.geotiff.save_geotiff:-1 of +msgid "save_geotiff_offset.png" msgstr "" -#: easyidp.data.EasyidpDataSet.load_data:5 of -msgid "" -"For users in China mainland, please either find a way to access google " -"drive, or download from `CowTransfer Link " -"`_" +#: ../../python_api/autodoc/easyidp.geotiff.tifffile_crop.rst:2 +msgid "easyidp.geotiff.tifffile\\_crop" msgstr "" -#: easyidp.data.EasyidpDataSet.load_data:8 of -msgid "Save and extract all \\*.zip file to folder ``idp.data.show_data_dir()``." +#: ../../python_api/geotiff.rst:36::1 +#: easyidp.geotiff.tifffile_crop:1 of +msgid "Extract a crop from a TIFF image file directory (IFD) by partial loading." msgstr "" -#: easyidp.data.EasyidpDataSet.load_data:10 of -msgid "The data structure should like this:" +#: easyidp.geotiff.tifffile_crop:3 of +msgid "Only the tiles englobing the crop area are loaded and not the whole page." msgstr "" -#: easyidp.data.EasyidpDataSet.reload_data:1 of -msgid "remove local data and redownload again" +#: easyidp.geotiff.tifffile_crop:5 of +msgid "This is usefull for large geotiff that unableto load into RAM." msgstr "" -#: easyidp.data.EasyidpDataSet.remove_data:1 of -msgid "remove local cached data file" +#: easyidp.geotiff.tifffile_crop:22 easyidp.geotiff.tifffile_crop:26 of +msgid "" +"Coordinates of the top left corner of the desired crop. top = i0 = " +"height_st left = j0 = w_st" msgstr "" -#: ../../python_api/data.rst:35 -msgid "Here have the following dataset:" +#: easyidp.geotiff.tifffile_crop:35 of +msgid "**out** -- Extracted crop." msgstr "" -#: ../../python_api/data.rst:38 -msgid "Lotus" +#: easyidp.geotiff.tifffile_crop:40 of +msgid "Modified from [1]_ ," msgstr "" -#: ../../python_api/data.rst:-1 -msgid "2017_tanashi_lotus.png" +#: easyidp.geotiff.tifffile_crop:42 of +msgid "" +"In EasyIDP v1.0, the function is ``caas_lite.get_crop(page, i0, j0, h, " +"w)``" msgstr "" -#: ../../python_api/data.rst:44 -msgid "**Crop** : lotus" +#: easyidp.geotiff.tifffile_crop:46 of +msgid "" +"https://gist.github.com/rfezzani/b4b8852c5a48a901c1e94e09feb34743#file-" +"get_crop-py-L60" msgstr "" -#: ../../python_api/data.rst:45 -msgid "**Location** : Tanashi, Nishi-Tokyo, Japan" +#: easyidp.geotiff.tifffile_crop:62 of +msgid "It is hard to know the parameter order immediately." msgstr "" -#: ../../python_api/data.rst:46 -msgid "**Flight date** : May 31, 2017" +#: easyidp.geotiff.tifffile_crop:64 of +msgid "" +":func:`easyidp.GeoTiff.crop_rectangle " +"`" msgstr "" -#: ../../python_api/data.rst:47 -msgid "**UAV model** : DJI Inspire 1" +#: ../../python_api/autodoc/easyidp.geotools.convert_proj.rst:2 +msgid "easyidp.geotools.convert\\_proj" msgstr "" -#: ../../python_api/data.rst:48 -msgid "**Flight height** : 30m" +#: ../../python_api/geotools.rst:19::1 +#: easyidp.geotools.convert_proj:1 of +msgid "Provide the geo coordinate transfrom based on pyproj package" msgstr "" -#: ../../python_api/data.rst:49 -msgid "**Image number** :142" +#: easyidp.geotools.convert_proj:3 of +msgid "the output of read_shp() function" msgstr "" -#: ../../python_api/data.rst:50 -msgid "**Image size** : 4608 x 3456" +#: easyidp.geotools.convert_proj:5 of +msgid "the hidden output of read_shp(..., return_proj=True)" msgstr "" -#: ../../python_api/data.rst:51 -msgid "**Software** : Pix4D, Metashape" +#: easyidp.geotools.convert_proj:7 of +msgid "" +"| Examples: | ``crs_target = pyproj.CRS.from_epsg(4326)`` | ``crs_target " +"= r'path/to/{shp_name}.prj'``" msgstr "" -#: ../../python_api/data.rst:52 -msgid "**Outputs** : DOM, DSM, PCD" +#: easyidp.geotools.convert_proj of +msgid "Examples:" msgstr "" -#: ../../python_api/data.rst:63::1 -msgid "" -":py:obj:`user_data_dir `\\ " -"\\(\\[file\\_name\\]\\)" +#: easyidp.geotools.convert_proj of +msgid "``crs_target = pyproj.CRS.from_epsg(4326)``" msgstr "" -#: ../../python_api/data.rst:63::1 -msgid ":py:obj:`show_data_dir `\\ \\(\\)" +#: easyidp.geotools.convert_proj of +msgid "``crs_target = r'path/to/{shp_name}.prj'``" msgstr "" -#: ../../python_api/data.rst:63::1 -msgid ":py:obj:`url_checker `\\ \\(url\\)" +#: easyidp.geotools.convert_proj:14 easyidp.geotools.convert_proj3d:47 +#: easyidp.metashape.Metashape.back2raw:19 +#: easyidp.metashape.Metashape.get_photo_position:15 +#: easyidp.metashape.Metashape.open_chunk:10 +#: easyidp.metashape.read_chunk_zip:61 easyidp.metashape.read_project_zip:39 +#: easyidp.pix4d.Pix4D.back2raw:23 easyidp.pix4d.Pix4D.get_photo_position:15 +#: easyidp.pix4d.parse_p4d_param_folder:24 easyidp.pix4d.parse_p4d_project:41 +#: easyidp.pix4d.read_cam_ssk:52 easyidp.pix4d.read_campos_geo:32 +#: easyidp.pix4d.read_ccp:54 easyidp.pix4d.read_cicp:36 +#: easyidp.pix4d.read_pmat:31 easyidp.pix4d.read_xyz:19 +#: easyidp.reconstruct.save_back2raw_json_and_png:10 +#: easyidp.visualize.draw_polygon_on_img:26 of +msgid "Data prepare" msgstr "" -#: ../../python_api/geotiff.rst:3 -msgid "GeoTiff" +#: easyidp.geotools.convert_proj:27 of +msgid "" +"Then do the transformation from lon-lat coordainte to WGS 84 / UTM zone " +"54N (CRS: EPSG:32654)" msgstr "" -#: ../../python_api/geotiff.rst:8 ../../python_api/pointcloud.rst:8 -#: ../../python_api/roi.rst:8 -msgid "Class" +#: ../../python_api/autodoc/easyidp.geotools.convert_proj3d.rst:2 +msgid "easyidp.geotools.convert\\_proj3d" msgstr "" -#: ../../python_api/geotiff.rst:10 -msgid "A summary of class ``GeoTiff``" +#: ../../python_api/geotools.rst:19::1 +#: easyidp.geotools.convert_proj3d:1 of +msgid "" +"Transform a point or points from one CRS to another CRS, by " +"pyproj.CRS.Transformer function" msgstr "" -#: ../../python_api/geotiff.rst:17::1 -msgid ":py:obj:`GeoTiff `\\ \\(\\[tif\\_path\\]\\)" +#: easyidp.geotools.convert_proj3d:3 of +msgid "the nx3 3D coordinate points" +msgstr "" + +#: easyidp.geotools.convert_proj3d:5 of +msgid "the CRS of points_np" +msgstr "" + +#: easyidp.geotools.convert_proj3d:7 of +msgid "the CRS of target" +msgstr "" + +#: easyidp.geotools.convert_proj3d:9 of +msgid "The format of points_np; True: x, y, z; False: lon, lat, alt" msgstr "" -#: ../../python_api/geotiff.rst:23 +#: easyidp.geotools.convert_proj3d:17 of +msgid "``point_np`` and ``fmt`` parameters" +msgstr "" + +#: easyidp.geotools.convert_proj3d:21 easyidp.geotools.convert_proj3d:30 of +msgid "points_np in this format:" +msgstr "" + +#: easyidp.geotools.convert_proj3d:40 of msgid "" -"The ``easyidp.GeoTiff`` class is an advanced wrapper around the following" -" functions, which is generally sufficient for most simple application " -"cases, please don't use the following functions unless you really need " -"to." +"pyproj.CRS order: (lat, lon, alt) points order in EasyIDP are commonly " +"(lon, lat, alt)" msgstr "" -#: ../../python_api/geotiff.rst:32::1 -msgid ":py:obj:`get_header `\\ \\(tif\\_path\\)" +#: easyidp.geotools.convert_proj3d:43 of +msgid "But if is xyz format, no need to change order" msgstr "" -#: ../../python_api/geotiff.rst:32::1 -msgid ":py:obj:`get_imarray `\\ \\(tif\\_path\\)" +#: easyidp.geotools.convert_proj3d:56 of +msgid "The geodetic 3D coordinate" msgstr "" -#: ../../python_api/geotiff.rst:32::1 +#: easyidp.geotools.convert_proj3d:63 of msgid "" -":py:obj:`geo2pixel `\\ \\(points\\_hv\\, " -"header\\[\\, return\\_index\\]\\)" +"And the same point in 3D geocentric coordaintes, order in columns=['lon'," +" 'lat', 'alt']" +msgstr "" + +#: easyidp.geotools.convert_proj3d:70 of +msgid "Then do the transformation:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.geotools.is_single_point.rst:2 +msgid "easyidp.geotools.is\\_single\\_point" +msgstr "" + +#: ../../python_api/geotools.rst:19::1 +#: easyidp.geotools.is_single_point:1 of +msgid "format one point coordinate ``[x,y,z]`` to ``[[x, y, z]]``" msgstr "" -#: ../../python_api/geotiff.rst:32::1 +#: easyidp.geotools.is_single_point:3 of +msgid "the ndarray point coordiantes" +msgstr "" + +#: easyidp.geotools.is_single_point:6 of +msgid "the converted coordinate, whether is single point" +msgstr "" + +#: ../../python_api/autodoc/easyidp.jsonfile.dict2json.rst:2 +msgid "easyidp.jsonfile.dict2json" +msgstr "" + +#: ../../python_api/json.rst:29::1 easyidp.jsonfile.dict2json:1 of +msgid "Save dict object to the same structure json file" +msgstr "" + +#: easyidp.jsonfile.dict2json:3 easyidp.jsonfile.save_json:3 +#: easyidp.jsonfile.write_json:3 of +msgid "the dict object want to save as json file" +msgstr "" + +#: easyidp.jsonfile.dict2json:5 easyidp.jsonfile.save_json:5 +#: easyidp.jsonfile.write_json:5 of msgid "" -":py:obj:`pixel2geo `\\ \\(points\\_hv\\, " -"header\\)" +"the path including json file name to save the json file e.g. " +"``D:/xxx/xxxx/save.json``" +msgstr "" + +#: easyidp.jsonfile.dict2json:8 easyidp.jsonfile.save_json:8 +#: easyidp.jsonfile.write_json:8 of +msgid "whether save \"readable\" json with indent, default 0 without indent" +msgstr "" + +#: easyidp.jsonfile.dict2json:10 easyidp.jsonfile.save_json:10 +#: easyidp.jsonfile.write_json:10 of +msgid "the encoding type of output file" +msgstr "" + +#: easyidp.jsonfile.dict2json:23 of +msgid "Dict without indient:" +msgstr "" + +#: easyidp.jsonfile.dict2json:30 of +msgid "Dict with 4 space as indient:" +msgstr "" + +#: easyidp.jsonfile.dict2json:41 of +msgid ":obj:`easyidp.jsonfile.write_json`, :obj:`easyidp.jsonfile.save_json`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.jsonfile.read_geojson.rst:2 +msgid "easyidp.jsonfile.read\\_geojson" msgstr "" -#: ../../python_api/geotiff.rst:32::1 +#: ../../python_api/json.rst:29::1 easyidp.jsonfile.read_geojson:1 +#: of +msgid "Read geojson file to python dict" +msgstr "" + +#: easyidp.jsonfile.read_geojson:3 of +msgid "The path to geojson file" +msgstr "" + +#: easyidp.jsonfile.read_geojson:5 easyidp.roi.ROI.read_geojson:5 +#: easyidp.roi.ROI.read_shp:9 easyidp.shp.read_shp:9 of msgid "" -":py:obj:`tifffile_crop `\\ \\(page\\, " -"top\\, left\\, h\\, w\\)" +"by default None, the id or name of shp file fields as output dictionary " +"keys" msgstr "" -#: ../../python_api/index.rst:3 -msgid "API Summary" -msgstr "API概要" +#: easyidp.jsonfile.read_geojson:7 easyidp.roi.ROI.read_geojson:7 +#: easyidp.roi.ROI.read_shp:11 easyidp.shp.read_shp:11 of +msgid "by default False, whether add column name to roi key." +msgstr "" -#: ../../python_api/index.rst:5 -msgid "The EasyIDP package have the following modules:" +#: easyidp.jsonfile.read_geojson:9 easyidp.shp.read_shp:15 of +msgid "" +"by default False, if given as true, will return extra pyproj.CRS object " +"of current shp file." msgstr "" -#: ../../python_api/index.rst:7 +#: easyidp.jsonfile.read_geojson:12 easyidp.shp.read_shp:18 of msgid "" -":doc:`Point cloud Module <./pointcloud>` : read, write, check and crop " -"operation." +"* *dict,* -- the dictionary with read numpy polygon coordinates .. " +"code-block:: python {'id1': np.array([[x1,y1],[x2,y2],...])," +" 'id2': np.array([[x1,y1],[x2,y2],...]),...} * *pyproj.CRS, " +"optional* -- once set return_proj=True" msgstr "" -#: ../../python_api/index.rst:8 +#: easyidp.jsonfile.read_geojson:12 easyidp.shp.read_shp:18 of +msgid "*dict,* -- the dictionary with read numpy polygon coordinates" +msgstr "" + +#: easyidp.jsonfile.read_geojson:18 easyidp.shp.read_shp:24 of +msgid "*pyproj.CRS, optional* -- once set return_proj=True" +msgstr "" + +#: easyidp.jsonfile.read_geojson:22 of +msgid "The example geojons file has the following columns:" +msgstr "" + +#: easyidp.jsonfile.read_geojson:36 easyidp.jsonfile.read_json:10 +#: easyidp.pointcloud.PointCloud.crop_point_cloud:10 +#: easyidp.pointcloud.PointCloud.crop_rois:15 +#: easyidp.pointcloud.PointCloud.read_point_cloud:12 +#: easyidp.pointcloud.PointCloud.write_point_cloud:8 +#: easyidp.roi.ROI.back2raw:62 easyidp.roi.ROI.crop:15 +#: easyidp.roi.ROI.get_z_from_dsm:52 easyidp.visualize.draw_backward_one_roi:25 +#: of +msgid "Data prepare:" +msgstr "" + +#: easyidp.jsonfile.read_geojson:44 of +msgid "Use this function to read geojson:" +msgstr "" + +#: easyidp.jsonfile.read_geojson:58 of msgid "" -":doc:`GeoTiff Module <./geotiff>` : read, write, crop, and statistics " -"operation." +"The ``196`` in previous code is the row 196, not the ``FID``=196. To use " +"the FID as result key, Please use ``name_field`` introduced below" msgstr "" -#: ../../python_api/index.rst:10 +#: easyidp.jsonfile.read_geojson:61 of msgid "" -":doc:`cvtools Submodule <./cvtools>` : processing ndarray images without " -"install scikit-image." +"If want use other attributes as result keys, for example, the first " +"column ``FID`` as the key:" msgstr "" -#: ../../python_api/index.rst:12 -msgid ":doc:`ROI Module <./roi>` : read region of interest from shp and txt file." +#: easyidp.jsonfile.read_geojson:75 of +msgid "" +"You can also combine multiple columns as the key values, by passing a " +"list to ``name_field``:" msgstr "" -#: ../../python_api/index.rst:14 -msgid ":doc:`shp Submodule <./shp>`: read shape (\\*.shp) file." +#: easyidp.jsonfile.read_geojson:85 easyidp.shp.read_shp:92 of +msgid "And you can also add column_names to id by ``include_title=True`` :" msgstr "" -#: ../../python_api/index.rst:15 -msgid ":doc:`jsonfile Submodule <./json>`: read and write json file." +#: easyidp.jsonfile.read_geojson:95 of +msgid ":obj:`easyidp.jsonfile.show_geojson_fields`, :obj:`easyidp.shp.read_shp`" msgstr "" -#: ../../python_api/index.rst:17 -msgid ":doc:`Data Module <./data>` : Download and provide path to example files." +#: ../../python_api/autodoc/easyidp.jsonfile.read_json.rst:2 +msgid "easyidp.jsonfile.read\\_json" +msgstr "" + +#: ../../python_api/json.rst:29::1 easyidp.jsonfile.read_json:1 of +msgid "Read json file to python dict." +msgstr "" + +#: easyidp.jsonfile.read_json:3 of +msgid "The path to json file" +msgstr "" + +#: ../../python_api/autodoc/easyidp.jsonfile.save_json.rst:2 +msgid "easyidp.jsonfile.save\\_json" msgstr "" -#: ../../python_api/index.rst:20 +#: ../../python_api/json.rst:29::1 easyidp.jsonfile.save_json:1 +#: easyidp.jsonfile.write_json:1 of msgid "" -"For each module, consisted by several base functions (e.g. " -"``easyidp.geotiff.*`` ) and an advanced wrapper class for them (e.g. " -"``easyidp.GeoTiff``). In the most cases, please use the upper case class " -"wrapper rather than the lowercase base functions unless you really need " -"them." +"Save dict to the same structure json file, a function wrapper for " +":func:`dict2json`" msgstr "" -#: ../../python_api/index.rst:22 -msgid "For example, this function can be used to read geotiff meta infomation:" +#: easyidp.jsonfile.save_json:13 easyidp.jsonfile.write_json:13 of +msgid ":obj:`easyidp.jsonfile.dict2json`" msgstr "" -#: ../../python_api/index.rst:29 +#: ../../python_api/autodoc/easyidp.jsonfile.show_geojson_fields.rst:2 +msgid "easyidp.jsonfile.show\\_geojson\\_fields" +msgstr "" + +#: ../../python_api/json.rst:29::1 +#: easyidp.jsonfile.show_geojson_fields:1 of msgid "" -"But it is more recommended use the advanced wrapper in most application " -"cases:" +"Show geojson properties data, for better setting ``name_field`` of " +":py:obj:`read_geojson `" msgstr "" -#: ../../python_api/index.rst:36 +#: easyidp.jsonfile.show_geojson_fields:3 easyidp.roi.ROI.read_geojson:3 of +msgid "the file path of \\*.geojson" +msgstr "" + +#: easyidp.jsonfile.show_geojson_fields:24 of +msgid ":obj:`easyidp.shp.show_shp_fields`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.jsonfile.write_json.rst:2 +msgid "easyidp.jsonfile.write\\_json" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:2 +msgid "easyidp.metashape.Metashape" +msgstr "" + +#: ../../python_api/metashape.rst:18::1 +#: easyidp.metashape.Metashape:1 of +msgid "the object for each chunk in Metashape 3D reconstruction project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: easyidp.metashape.Metashape.__init__:1 of +msgid "The method to initialize the Metashape class" +msgstr "" + +#: easyidp.metashape.Metashape.__init__:3 of msgid "" -"Although it may seem like more code, advanced wrappers have more " -"convenient functions to use without caring about specific data structure " -"details. Most of our example cases are using the advanced class wrapper." +"The metashape project file to open, like \"xxxx.psx\",, by default None, " +"means create an empty class" msgstr "" -#: ../../python_api/index.rst:40 +#: easyidp.metashape.Metashape.__init__:5 +#: easyidp.metashape.Metashape.open_project:5 of msgid "" -"The :class:`easyidp.Container` object, its child objects, and objects " -"contains this object, like :class:`easyidp.roi.ROI` , ``ProjectPool`` , " -"``Recons`` , ``Pix4D`` , ``Metashape``, can not be saved by pickle." +"The chunk id or name(label) want to open, by default None, open the first" +" chunk." +msgstr "" + +#: easyidp.metashape.Metashape.__init__:7 easyidp.pix4d.Pix4D.__init__:5 +#: easyidp.pix4d.Pix4D.open_project:5 of +msgid "the original UAV image folder, by default None" msgstr "" -#: ../../python_api/index.rst:42 +#: easyidp.metashape.Metashape.__init__:9 +#: easyidp.metashape.Metashape.change_photo_folder:10 of msgid "" -"Please check this link for more details `What can be pickled and " -"unpickled `_ ." +"Ignore the missing photos when set to False, suitable for testing project" +" with just a few images, to avoid the FileNotFoundError" msgstr "" -#: ../../python_api/json.rst:5 -msgid "• jsonfile" +#: easyidp.metashape.Metashape.__init__:19 of +msgid "Then open the demo Metashape project:" msgstr "" -#: ../../python_api/json.rst:15 ../../python_api/roi.rst:23 -#: ../../python_api/shp.rst:14 +#: easyidp.metashape.Metashape.__init__:30 of +msgid "Or you can create an empty class and then open project:" +msgstr "" + +#: easyidp.metashape.Metashape.__init__:44 of msgid "" -"The ``easyidp.ROI`` class is an advanced wrapper around the following " -"functions, which is generally sufficient for most simple application " -"cases, please don't use the following functions unless you really need " -"to." +"One metashape project may have several chunks, and each " +"``easyidp.Metashape`` project could only handle with only one chunk at " +"once." msgstr "" -#: ../../python_api/json.rst:23::1 -msgid ":py:obj:`read_json `\\ \\(json\\_path\\)" +#: easyidp.metashape.Metashape.__init__:46 of +msgid "The arrow before ID shows which chunk has been opened" msgstr "" -#: ../../python_api/json.rst:23::1 +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 msgid "" -":py:obj:`dict2json `\\ \\(data\\_dict\\, " -"json\\_path\\[\\, indent\\, ...\\]\\)" +":py:obj:`__init__ `\\ " +"\\(\\[project\\_path\\, chunk\\_id\\, ...\\]\\)" msgstr "" -#: ../../python_api/json.rst:23::1 +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 msgid "" -":py:obj:`write_json `\\ \\(data\\_dict\\, " -"json\\_path\\[\\, indent\\, ...\\]\\)" +":py:obj:`back2raw `\\ \\(roi\\[\\, " +"save\\_folder\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.metashape.Metashape.back2raw:1 easyidp.pix4d.Pix4D.back2raw:1 +#: easyidp.roi.ROI.back2raw:1 of +msgid "Projects several GIS coordintates ROIs (polygons) to all images" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`back2raw_crs `\\ " +"\\(points\\_xyz\\[\\, ignore\\, log\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: easyidp.metashape.Metashape.back2raw_crs:1 of +msgid "Projs one GIS coordintates ROI (polygon) to all images" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`change_photo_folder " +"`\\ " +"\\(raw\\_img\\_folder\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: easyidp.metashape.Metashape.change_photo_folder:1 of +msgid "Change the folder path of raw images" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`get_photo_position " +"`\\ \\(\\[to\\_crs\\, " +"refresh\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.metashape.Metashape.get_photo_position:1 +#: easyidp.pix4d.Pix4D.get_photo_position:1 of +msgid "Get all photos' center geo position (on given CRS)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`open_chunk `\\ " +"\\(chunk\\_id\\[\\, project\\_path\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: easyidp.metashape.Metashape.open_chunk:1 of +msgid "switch to the other chunk, or chunk in a new project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`open_project `\\ " +"\\(project\\_path\\[\\, chunk\\_id\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.metashape.Metashape.open_project:1 +#: easyidp.pix4d.Pix4D.open_project:1 of +msgid "Open a new 3D reconstructin project to overwritting current project." +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`show_photo_folder " +"`\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: easyidp.metashape.Metashape.show_photo_folder:1 of +msgid "A function to check the original photo path" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`show_roi_on_img `\\" +" \\(img\\_dict\\, roi\\_name\\[\\, img\\_name\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.metashape.Metashape.show_roi_on_img:1 +#: easyidp.pix4d.Pix4D.show_roi_on_img:1 of +msgid "" +"Visualize the specific backward projection results for given roi on the " +"given image." +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +msgid "" +":py:obj:`sort_img_by_distance " +"`\\ " +"\\(img\\_dict\\_all\\, roi\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.Metashape.rst:30::1 +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: ../../python_api/reconstruct.rst:110::1 +#: easyidp.metashape.Metashape.sort_img_by_distance:1 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:1 +#: easyidp.reconstruct.sort_img_by_distance:1 of +msgid "" +"Advanced wrapper of sorting back2raw img_dict results by distance from " +"photo to roi" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`crs `\\" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.reconstruct.Recons.crs:1 +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid "" +"the geographic coordinates (often the same as the export DOM and DSM), " +"````" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`dom `\\" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.dom:1 of +msgid "" +"The output digitial orthomosaic map (DOM), :class:`easyidp.GeoTiff " +"`" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`dsm `\\" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.dsm:1 of +msgid "" +"The output digitial surface map (DSM), :class:`easyidp.GeoTiff " +"`" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`pcd `\\" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.pcd:1 of +msgid "" +"The output point cloud, :class:`easyidp.PointCloud " +"`" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`project_folder `\\" msgstr "" -#: ../../python_api/json.rst:23::1 -msgid "" -":py:obj:`save_json `\\ \\(data\\_dict\\, " -"json\\_path\\[\\, indent\\, ...\\]\\)" -msgstr "" +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.project_folder:1 of +msgid "the folder contains the metashape project (.psx) files" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`project_name `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.project_name:1 of +msgid "the metashape project (file) name." +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`chunk_id `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.chunk_id:1 of +msgid "" +"the chunk that be picked as for easyidp (this class, only deal with one " +"chunk in metashape project)" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`raw_img_folder `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.raw_img_folder:1 of +msgid "the folder that contains the origial images" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`label `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.label:1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 easyidp.pix4d.Pix4D.label:1 +#: of +msgid "project / chunk name" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`meta `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.meta:1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 easyidp.pix4d.Pix4D.meta:1 of +msgid "project meta information" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`enabled `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.enabled:1 +#: easyidp.pix4d.Pix4D.back2raw:1::1 easyidp.pix4d.Pix4D.enabled:1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.enabled:1 of +msgid "" +"whether this project is activated, (often for Metashape), ````" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`sensors `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.sensors:1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.sensors:1 of +msgid "" +"the container for all sensors in this project (camera model), ````, a dict-like object consisted by :py:class:`Sensor" +" `" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:1::1 of +msgid ":py:obj:`photos `\\" +msgstr "" + +#: ../../docstring easyidp.metashape.Metashape.back2raw:1::1 +#: easyidp.metashape.Metashape.photos:1 +#: easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.photos:1 of +msgid "" +"the container for all photos used in this project (images), ````, a dict-like object consisted by :py:class:`Photo " +"`" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:3 easyidp.pix4d.Pix4D.back2raw:3 +#: easyidp.roi.ROI.back2raw:3 of +msgid "the object created by easyidp.ROI() or dictionary" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:5 +#: easyidp.metashape.Metashape.sort_img_by_distance:12 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:12 +#: easyidp.reconstruct.sort_img_by_distance:14 of +msgid "" +"the folder to save json files and parts of ROI on raw images, by default " +"None" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:7 +#: easyidp.metashape.Metashape.back2raw_crs:5 easyidp.pix4d.Pix4D.back2raw:11 +#: easyidp.pix4d.Pix4D.back2raw_crs:9 easyidp.roi.ROI.back2raw:11 of +msgid "" +"Whether tolerate small parts outside image, check " +":func:`easyidp.reconstruct.Sensor.in_img_boundary` for more details. - " +"``None``: strickly in image area; - ``x``: only y (vertical) in image " +"area, x can outside image; - ``y``: only x (horizontal) in image area, y " +"can outside image." +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:7 +#: easyidp.metashape.Metashape.back2raw_crs:5 easyidp.pix4d.Pix4D.back2raw:11 +#: easyidp.pix4d.Pix4D.back2raw_crs:9 easyidp.roi.ROI.back2raw:11 of +msgid "" +"Whether tolerate small parts outside image, check " +":func:`easyidp.reconstruct.Sensor.in_img_boundary` for more details." +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:10 +#: easyidp.metashape.Metashape.back2raw_crs:8 easyidp.pix4d.Pix4D.back2raw:14 +#: easyidp.pix4d.Pix4D.back2raw_crs:12 +#: easyidp.reconstruct.Sensor.in_img_boundary:7 easyidp.roi.ROI.back2raw:13 of +msgid "``None``: strickly in image area;" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:11 +#: easyidp.metashape.Metashape.back2raw_crs:9 easyidp.pix4d.Pix4D.back2raw:15 +#: easyidp.pix4d.Pix4D.back2raw_crs:13 +#: easyidp.reconstruct.Sensor.in_img_boundary:8 easyidp.roi.ROI.back2raw:14 of +msgid "``x``: only y (vertical) in image area, x can outside image;" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:12 +#: easyidp.metashape.Metashape.back2raw_crs:10 easyidp.pix4d.Pix4D.back2raw:16 +#: easyidp.pix4d.Pix4D.back2raw_crs:14 +#: easyidp.reconstruct.Sensor.in_img_boundary:9 easyidp.roi.ROI.back2raw:15 of +msgid "``y``: only x (horizontal) in image area, y can outside image." +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:14 +#: easyidp.metashape.Metashape.back2raw_crs:12 easyidp.pix4d.Pix4D.back2raw:18 +#: easyidp.pix4d.Pix4D.back2raw_crs:16 +#: easyidp.reconstruct.Sensor.in_img_boundary:24 easyidp.roi.ROI.back2raw:17 of +msgid "whether print log for debugging, by default False" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw:36 easyidp.pix4d.Pix4D.back2raw:42 of +msgid "Then using this function to do backward projection:" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw_crs:3 +#: easyidp.pix4d.Pix4D.back2raw_crs:3 of +msgid "The 3D coordinates of polygon vertexm, in CRS coordinates" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw_crs:15 of +msgid "a dictionary that key = img_name and values= pixel coordinate" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw_crs:20 +#: easyidp.pix4d.Pix4D.back2raw_crs:24 of +msgid "Data preparation" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw_crs:38 of +msgid "" +"..caution:: specifying the CRS of metashape project (``ms.crs = " +"dsm.crs``) is required before doing backward projection calculation" +msgstr "" + +#: easyidp.metashape.Metashape.back2raw_crs:40 +#: easyidp.pix4d.Pix4D.back2raw_crs:44 of +msgid "" +"Then use this function to find the previous ROI positions on the raw " +"images:" +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:3 of +msgid "" +"The new folder path contains raw image folder. If type == `str` : " +"replace the root string directly. if type == `dict` : (not implemented)" +" e.g. {'path/to/flight1/': 'new/path/to/flight1', }" +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:3 of +msgid "The new folder path contains raw image folder." +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:5 of +msgid "If type == `str` :" +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:6 of +msgid "replace the root string directly." +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:7 of +msgid "if type == `dict`" +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:-1 of +msgid "(not implemented)" +msgstr "" + +#: easyidp.metashape.Metashape.change_photo_folder:8 of +msgid "e.g. {'path/to/flight1/': 'new/path/to/flight1', }" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:3 +#: easyidp.pix4d.Pix4D.get_photo_position:3 of +msgid "Transformed to another geo coordinate, by default None, the project.crs" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:5 +#: easyidp.pix4d.Pix4D.get_photo_position:5 of +msgid "" +"- ``False`` : Use cached results (if have), by default - ``True`` : " +"recalculate the photo position" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:6 +#: easyidp.pix4d.Pix4D.get_photo_position:6 of +msgid "``False`` : Use cached results (if have), by default" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:7 +#: easyidp.pix4d.Pix4D.get_photo_position:7 of +msgid "``True`` : recalculate the photo position" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:10 +#: easyidp.pix4d.Pix4D.get_photo_position:10 of +msgid "The dictionary contains \"photo.label\": [x, y, z] coordinates" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:27 +#: easyidp.pix4d.Pix4D.get_photo_position:24 of +msgid "Then use this function to get the photo position in 3D world:" +msgstr "" + +#: easyidp.metashape.Metashape.get_photo_position:38 of +msgid "" +"by default, if not specifying the CRS of metashape project, it will " +"return in default CRS (epsg: 4326) -> (lon, lat, height), if need turn to" +" the same coordinate like DOM/DSM, please specify the CRS first" +msgstr "" + +#: easyidp.metashape.Metashape.open_chunk:3 of +msgid "The chunk id or name(label) want to open" +msgstr "" + +#: easyidp.metashape.Metashape.open_chunk:5 of +msgid "" +"The new metashape project file to open, like \"xxxx.psx\",, by default " +"None, means swtich inside current metashape project" +msgstr "" + +#: easyidp.metashape.Metashape.open_chunk:27 of +msgid "Then switch from chunk 1 to chunk 4, by id or by label:" +msgstr "" + +#: easyidp.metashape.Metashape.open_project:3 of +msgid "" +"The pix4d project file to open, like \"xxxx.psx\", or \"xxxx\" without " +"suffix." +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:3 +#: easyidp.pix4d.Pix4D.show_roi_on_img:3 of +msgid "The backward results from back2raw()" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:5 +#: easyidp.pix4d.Pix4D.show_roi_on_img:5 of +msgid "The roi name to show" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:7 of +msgid "the image file name, by default None, plotting all available images" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:9 +#: easyidp.pix4d.Pix4D.show_roi_on_img:9 +#: easyidp.visualize.draw_polygon_on_img:9 of +msgid "" +"the corrected 2D polygon pixel coordiante on the image (if have), by " +"default None" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:11 +#: easyidp.pix4d.Pix4D.show_roi_on_img:11 of +msgid "" +"The image title displayed on the top, by default None -> ``ROI [roi_name]" +" on [img_name]``" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:13 +#: easyidp.pix4d.Pix4D.show_roi_on_img:13 +#: easyidp.visualize.draw_backward_one_roi:12 +#: easyidp.visualize.draw_polygon_on_img:13 of +msgid "file path to save the output figure, by default None" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:15 +#: easyidp.pix4d.Pix4D.show_roi_on_img:15 +#: easyidp.visualize.draw_backward_one_roi:14 +#: easyidp.visualize.draw_polygon_on_img:15 of +msgid "" +"whether display (in jupyter notebook) or popup (in command line) the " +"figure, by default False" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:17 +#: easyidp.pix4d.Pix4D.show_roi_on_img:17 +#: easyidp.visualize.draw_backward_one_roi:16 +#: easyidp.visualize.draw_polygon_on_img:17 of +msgid "the polygon line color, by default 'red'" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:19 +#: easyidp.pix4d.Pix4D.show_roi_on_img:19 +#: easyidp.visualize.draw_backward_one_roi:18 +#: easyidp.visualize.draw_polygon_on_img:19 of +msgid "the polygon transparency, by default 0.5" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:21 +#: easyidp.pix4d.Pix4D.show_roi_on_img:21 +#: easyidp.visualize.draw_backward_one_roi:20 +#: easyidp.visualize.draw_polygon_on_img:21 of +msgid "the dpi of produced figure, by default 72" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:30 +#: easyidp.pix4d.Pix4D.show_roi_on_img:30 of +msgid "Check the \"N1W1\" ROI on image \"DJI_0479.JPG\":" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:36 +#: easyidp.pix4d.Pix4D.show_roi_on_img:36 of +msgid "Check the \"N1W1\" ROI on all available images:" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:40 +#: easyidp.pix4d.Pix4D.show_roi_on_img:40 of +msgid "" +"For more details, please check in :ref:`this example `" +msgstr "" + +#: easyidp.metashape.Metashape.show_roi_on_img:42 +#: easyidp.pix4d.Pix4D.show_roi_on_img:42 of +msgid "" +":obj:`easyidp.visualize.draw_polygon_on_img`, " +":obj:`easyidp.visualize.draw_backward_one_roi`" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:3 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:3 +#: easyidp.reconstruct.sort_img_by_distance:5 of +msgid "" +"All output dict of roi.back2raw(...) e.g. img_dict = roi.back2raw(...) ->" +" img_dict" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:6 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:6 +#: easyidp.reconstruct.sort_img_by_distance:8 of +msgid "Your roi variable" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:8 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:8 +#: easyidp.reconstruct.sort_img_by_distance:10 of +msgid "Keep the closest {x} images" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:10 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:10 +#: easyidp.reconstruct.sort_img_by_distance:12 of +msgid "Keep the images closer than this distance to ROI." +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:15 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:15 of +msgid "the same structure as output of roi.back2raw(...)" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:20 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:20 of +msgid "In the previous :func:`back2raw` results :" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:40 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:40 of +msgid "" +"The image are in chaos order, in most application cases, probable only " +"1-3 closest images (to ROI in real world) are required, so this function " +"is provided to sort/filter out." +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:43 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:43 of +msgid "" +"In the following example, it filtered 3 images whose distance from camera" +" to ROI in real world smaller than 10m:" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:92 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:92 of +msgid "Or pick the closest one image:" +msgstr "" + +#: easyidp.metashape.Metashape.sort_img_by_distance:119 +#: easyidp.pix4d.Pix4D.sort_img_by_distance:119 of +msgid "" +"You can use ``list(dict.keys())[0]`` to get the image name automatically " +"to iterate each plot:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.apply_transform_matrix.rst:2 +msgid "easyidp.metashape.apply\\_transform\\_matrix" +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:1 of +msgid "" +"Transforms a point or points in homogeneous coordinates. equal to " +"Metashape.Matrix.mulp() or Metashape.Matrix.mulv()" +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:4 of +msgid "4x4 transform numpy array" +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:6 of +msgid "" +"For example: .. code-block:: python # 1x3 single point >>> " +"np.array([1,2,3]) x y z 0 1 2 3 # nx3 points >>>" +" np.array([[1,2,3], [4,5,6], ...]) x y z 0 1 2 3 1 4" +" 5 6 ..." +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:6 of +msgid "For example:" +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:23 of +msgid "" +"**out** -- same size as input points_np: .. code-block:: text x" +" y z 0 1 2 3 1 4 5 6" +msgstr "" + +#: easyidp.metashape.apply_transform_matrix:23 of +msgid "**out** -- same size as input points_np:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.read_chunk_zip.rst:2 +msgid "easyidp.metashape.read\\_chunk\\_zip" +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +#: easyidp.metashape.read_chunk_zip:1 of +msgid "parse xml in the given ``chunk.zip`` file." +msgstr "" + +#: easyidp.metashape.read_chunk_zip:7 of +msgid "the chunk id start from 0 of chunk.zip" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:9 of +msgid "return None if chunk enabled is False in metashape project" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:11 of +msgid "Only parse chunk.label, by default False" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:18 easyidp.metashape.read_project_zip:13 of +msgid "" +"If one project path look likes: ``/root/to/metashape/test_proj.psx``, " +"then the input parameter should be:" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:21 easyidp.metashape.read_project_zip:16 of +msgid "``project_folder = \"/root/to/metashape/\"``" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:22 easyidp.metashape.read_project_zip:17 of +msgid "``project_name = \"test_proj\"``" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:24 of +msgid "Example for xml_str:" +msgstr "" + +#: easyidp.metashape.read_chunk_zip:72 of +msgid "Then parse the chunk:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.metashape.read_project_zip.rst:2 +msgid "easyidp.metashape.read\\_project\\_zip" +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +#: easyidp.metashape.read_project_zip:1 of +msgid "parse xml in the ``project.zip`` file, and get the chunk id and path" +msgstr "" + +#: easyidp.metashape.read_project_zip:8 of +msgid "**project_dict** -- key = chunk_id, value = chunk_path" +msgstr "" + +#: easyidp.metashape.read_project_zip:19 of +msgid "And obtained xml_str example:" +msgstr "" + +#: easyidp.metashape.read_project_zip:50 of +msgid "Then use this function to" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:2 +msgid "easyidp.pix4d.Pix4D" +msgstr "" + +#: ../../python_api/pix4d.rst:17::1 easyidp.pix4d.Pix4D:1 of +msgid "A Pix4D class, contains information of 3D reconstruction." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.pix4d.Pix4D.__init__:1 of +msgid "The method to initialize the Pix4D class" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:3 of +msgid "" +"The pix4d project file to open, like \"xxxx.p4d\", by default None, means" +" create an empty class" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:7 easyidp.pix4d.Pix4D.open_project:7 of +msgid "" +"the folder of pix4d project parameters, just in case user changed the " +"default folder structure (``...\\project_name\\1_initial\\params\\``), by" +" default None" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:18 of +msgid "Then open the demo pix4d project:" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:24 of +msgid "" +"Or manual specify parameters if the project folder structure has been " +"changed." +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:34 of +msgid "Or you can create an empty project, and the open a given path:" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:47 of +msgid "" +"In previous case, the manager reorganized the project structure and " +"outputs of ``test_data.pix4d.lotus_folder``" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:49 of +msgid "" +"(e.g., moved the ``\\project_name\\1_initial\\params\\`` to " +"``\\project_name\\params\\``, as well as other outputs, the following " +"folder is no more a standard pix4d project)" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:65 of +msgid "" +"The default loading doesn't work, because it is not a standard pix4d " +"project:" +msgstr "" + +#: easyidp.pix4d.Pix4D.__init__:81 of +msgid "In this case, must manual specfiy the ``param_folder``" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`__init__ `\\ " +"\\(\\[project\\_path\\, raw\\_img\\_folder\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`back2raw `\\ \\(roi\\[\\, " +"save\\_folder\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`back2raw_crs `\\ " +"\\(points\\_xyz\\[\\, distort\\_correct\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.pix4d.Pix4D.back2raw_crs:1 of +msgid "Projects one GIS coordintates ROI (polygon) to all images" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`get_photo_position `\\ " +"\\(\\[to\\_crs\\, refresh\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid ":py:obj:`load_dom `\\ \\(geotiff\\_path\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.pix4d.Pix4D.load_dom:1 of +msgid "Manual load the DOM file generated by this Pix4D project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid ":py:obj:`load_dsm `\\ \\(geotiff\\_path\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.pix4d.Pix4D.load_dsm:1 of +msgid "Manual load the DSM file generated by this Pix4D project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid ":py:obj:`load_pcd `\\ \\(pcd\\_path\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +#: easyidp.pix4d.Pix4D.load_pcd:1 of +msgid "Manual load the point cloud file generated by this Pix4D project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`open_project `\\ " +"\\(project\\_path\\[\\, raw\\_img\\_folder\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`show_roi_on_img `\\ " +"\\(img\\_dict\\, roi\\_name\\[\\, img\\_name\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.Pix4D.rst:30::1 +msgid "" +":py:obj:`sort_img_by_distance " +"`\\ \\(img\\_dict\\_all\\, " +"roi\\[\\, ...\\]\\)" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`crs `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`dom `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`dsm `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`pcd `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`software `\\" +msgstr "" + +#: ../../docstring easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.pix4d.Pix4D.software:1 of +msgid "" +"the 3D reconstruction project software, in ['pix4d', 'metashape'], " +"````" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`offset_np `\\" +msgstr "" + +#: ../../docstring easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.pix4d.Pix4D.offset_np:1 of +#, fuzzy +msgid "pix4d point cloud offset" +msgstr "点群" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`label `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`meta `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`enabled `\\" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`sensors `\\" +msgstr "" + +#: ../../docstring easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.pix4d.Pix4D.sensors:1 of +msgid "" +"the container for all sensors in this project (camera model), ````" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:1::1 of +msgid ":py:obj:`photos `\\" +msgstr "" + +#: ../../docstring easyidp.pix4d.Pix4D.back2raw:1::1 +#: easyidp.pix4d.Pix4D.photos:1 of +msgid "" +"the container for all photos used in this project (images), ````" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:5 easyidp.roi.ROI.back2raw:5 of +msgid "" +"the folder to save projected preview images and json files, by default " +"\"\"" +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw:7 easyidp.pix4d.Pix4D.back2raw_crs:5 of +msgid "" +"Whether do distortion correction, by default True (back to raw image); If" +" back to software corrected images without len distortion, set it to " +"True. Pix4D support do this operation, seems metashape not supported yet." +msgstr "" + +#: easyidp.pix4d.Pix4D.back2raw_crs:19 of +msgid "a dictionary like ``{img_name: pixel coordinate, ... }``" +msgstr "" + +#: easyidp.pix4d.Pix4D.load_dom:3 of +msgid "The path to DOM file" +msgstr "" + +#: easyidp.pix4d.Pix4D.load_dsm:3 of +msgid "The path to DSM file" +msgstr "" + +#: easyidp.pix4d.Pix4D.load_pcd:3 of +msgid "The path to point cloud file" +msgstr "" + +#: easyidp.pix4d.Pix4D.load_pcd:8 of +msgid "" +"The pix4d produced point cloud is offsetted (xyz-offset). This function " +"already handle adding offset back to point cloud. If you need manual " +"specify ``idp.PointCloud()`` by yourself, please do:" +msgstr "" + +#: easyidp.pix4d.Pix4D.open_project:3 of +msgid "" +"The pix4d project file to open, like \"xxxx.p4d\", or \"xxxx\" without " +"suffix" +msgstr "" + +#: easyidp.pix4d.Pix4D.open_project:18 of +msgid "Then using this function to open a new project:" +msgstr "" + +#: easyidp.pix4d.Pix4D.show_roi_on_img:7 of +msgid "the image file name. by default None, plotting all available images" +msgstr "" + +#: easyidp.pix4d.Pix4D.sort_img_by_distance:130 of +msgid ":obj:`easyidp.reconstruct.sort_img_by_distance`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.parse_p4d_param_folder.rst:2 +msgid "easyidp.pix4d.parse\\_p4d\\_param\\_folder" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +#: easyidp.pix4d.parse_p4d_param_folder:1 of +msgid "" +"Get full file path of parameter folder " +"(``...\\project_name\\1_initial\\params.``) of Pix4D project." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:3 of +msgid "The param folder path of pix4d project." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:6 of +msgid "" +"The dictionary contains pix4d params, ``keys=[\"project_name\", \"xyz\", " +"\"pmat\", \"cicp\", \"ccp\", \"campos\", \"ssk\", \"crs\"]``" +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:11 of +msgid "We use the following parameters [1]_:" +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:13 of +msgid "``project_name`` : the project name" +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:14 of +msgid "" +"``xyz``: the full file path of ``*_offset.xyz``, contains the point cloud" +" offset values" +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:15 of +msgid "" +"``pmat``: the full file path of ``*_pmatrix.txt`` file, contains the " +"compressed internal and external camera parameters." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:16 of +msgid "" +"``cicp``: the full file path of " +"``*_pix4d_calibrated_internal_camera_parameters.cam``, it contains " +"information about the optimized (computed) internal camera parameters." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:17 of +msgid "" +"``ccp``: the full file path of ``*_calibrated_camera_parameters.txt``, it" +" contains the information of each calibrated camera." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:18 of +msgid "" +"``campos``: the full file path of ``*_calibrated_images_position.txt``, " +"the position information of each calibrated camera." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:19 of +msgid "" +"``ssk``: the full file path of ``*_camera.ssk``, it contains information " +"about the camera parameters." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:20 of +msgid "" +"``crs`` : the full file path of ``*_wkt.prj``, it contains the projection" +" of the output coordinate system in the projection format." +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:34 easyidp.pix4d.read_cam_ssk:65 +#: easyidp.pix4d.read_campos_geo:45 easyidp.pix4d.read_ccp:67 +#: easyidp.pix4d.read_cicp:49 easyidp.pix4d.read_pmat:41 +#: easyidp.pix4d.read_xyz:32 of +msgid "Then use this function:" +msgstr "" + +#: easyidp.pix4d.parse_p4d_param_folder:51 of +msgid "" +"What does the Output Params Folder contain? https://support.pix4d.com/hc" +"/en-us/articles/202977149-What-does-the-Output-Params-Folder-contain" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.parse_p4d_project.rst:2 +msgid "easyidp.pix4d.parse\\_p4d\\_project" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +#: easyidp.pix4d.parse_p4d_project:1 of +msgid "" +"A fuction to automatically analyze related subfiles in pix4d project " +"folder" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:3 of +msgid "" +"the path to pix4d project file, that folder should contains the following" +" sub-folder: .. code-block:: text \\project_path |--- " +"1_initial\\ |--- 2_densification\\ |___ 3_dsm_ortho\\" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:3 of +msgid "" +"the path to pix4d project file, that folder should contains the following" +" sub-folder:" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:18 of +msgid "param_folder: str, default None" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project of +msgid "if not given, it will parse as a standard pix4d project, and trying" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project of +msgid "to get the project name from ``1_initial/param`` folder" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project of +msgid "if it is not a standard pix4d project (re-orgainzed folder), need manual" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project of +msgid "specify the path to param folder, in order to parse project_name" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project of +msgid "for later usage." +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:20 of +msgid "" +"**p4d** -- a python dictionary that contains the path to each file. .. " +"code-block:: python { \"project_name\": the prefix of whole " +"project file. \"param\": the folder of parameters " +"\"pcd\": the point cloud file \"dom\": the digital orthomosaic " +"file \"dsm\": the digital surface model file " +"\"undist_raw\": the undistorted images corrected by the pix4d software " +"(when original image unable to find) }" +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:20 of +msgid "**p4d** -- a python dictionary that contains the path to each file." +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:36 of +msgid "" +"Project_name can be extracted from parameter folder prefix in easyidp " +"2.0, no need manual specify. To find the outputs, it will pick the first " +"file that fits the expected file format." +msgstr "" + +#: easyidp.pix4d.parse_p4d_project:52 of +msgid "Then use this function to parse given pix4d:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_cam_ssk.rst:2 +msgid "easyidp.pix4d.read\\_cam\\_ssk" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 easyidp.pix4d.read_cam_ssk:1 +#: of +msgid "Get the camera model name, for :class:`easyidp.reconstruct.Sensor` object" +msgstr "" + +#: easyidp.pix4d.read_cam_ssk:6 of +msgid "" +".. code-block:: python ssk_info = { \"label\":" +" str \"type\": str, e.g. frame" +" / fisheye ... \"pixel_size\": [h, w] " +"\"pixel_size_unit\": \"mm\" \"image_size_in_pixels\": [h" +" ,w] \"orientation\": 1 # guess 0 -> w, h? " +"\"photo_center_in_pixels\": [h, w] }" +msgstr "" + +#: easyidp.pix4d.read_cam_ssk:24 of +msgid "SSK file contents:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_campos_geo.rst:2 +msgid "easyidp.pix4d.read\\_campos\\_geo" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +#: easyidp.pix4d.read_campos_geo:1 of +msgid "" +"Read ``*_calibrated_images_position.txt`` for " +":class:`easyidp.reconstruct.Photo.position` (geo_location)" +msgstr "" + +#: easyidp.pix4d.read_campos_geo:3 easyidp.pix4d.read_ccp:3 +#: easyidp.pix4d.read_cicp:3 of +msgid "file path" +msgstr "" + +#: easyidp.pix4d.read_campos_geo:6 of +msgid "" +".. code-block:: python campos_dict = { \"Image1.JPG\": " +"np.array([x, y ,z]), \"Image2.JPG\": ... ... }" +msgstr "" + +#: easyidp.pix4d.read_campos_geo:19 of +msgid "this file contains the geo position of each camera, and looks like:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_ccp.rst:2 +msgid "easyidp.pix4d.read\\_ccp" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 easyidp.pix4d.read_ccp:1 of +msgid "" +"Read ``*_calibrated_camera_parameters.txt`` for " +":class:`easyidp.reconstruct.Photo` object" +msgstr "" + +#: easyidp.pix4d.read_ccp:6 of +msgid "" +".. code-block:: python img_configs = { 'w': 4608, " +"'h': 3456, 'Image1.JPG': { 'cam_matrix': " +"array([[...]]), 'rad_distort': array([ 0.03833474, ...])," +" 'tan_distort': array([0.00240852, ...]), " +"'cam_pos': array([ 21.54872207, ...]), 'cam_rot': " +"array([[ 0.78389904, ...]])}, 'Image2.JPG': {...}" +" }" +msgstr "" + +#: easyidp.pix4d.read_ccp:27 of +msgid "It is the camera position info in local coordinate, the file looks like:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_cicp.rst:2 +msgid "easyidp.pix4d.read\\_cicp" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 easyidp.pix4d.read_cicp:1 of +msgid "" +"Read ``*_pix4d_calibrated_internal_camera_parameters.cam`` for " +":class:`easyidp.reconstruct.Sensor` object" +msgstr "" + +#: easyidp.pix4d.read_cicp:6 of +msgid "" +".. code-block:: python cicp_dict.keys() = ['F', 'Px', 'Py', " +"'K1', 'K2', 'K3', 'T1', 'T2', 'w_mm', 'h_mm']" +msgstr "" + +#: easyidp.pix4d.read_cicp:16 of +msgid "It is the info about sensor, the file looks like:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_pmat.rst:2 +msgid "easyidp.pix4d.read\\_pmat" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 easyidp.pix4d.read_pmat:1 of +msgid "read pix4d file ``*_pmatrix.txt``" +msgstr "" + +#: easyidp.pix4d.read_pmat:3 of +msgid "the path of pmatrix file.type" +msgstr "" + +#: easyidp.pix4d.read_pmat:6 of +msgid "" +".. code-block:: python pmat_dict = { \"DJI_0000.JPG\": " +"nparray(3x4), ... , \"DJI_9999.JPG\": nparray(3x4) }" +msgstr "" + +#: easyidp.pix4d.read_pmat:19 of +msgid "The pmatrix.txt file looks like:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pix4d.read_xyz.rst:2 +msgid "easyidp.pix4d.read\\_xyz" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 easyidp.pix4d.read_xyz:1 of +msgid "read pix4d file ``*_offset.xyz``" +msgstr "" + +#: easyidp.pix4d.read_xyz:3 of +msgid "the path to target offset.xyz file" +msgstr "" + +#: easyidp.pix4d.read_xyz:6 of +msgid "**x, y, z**" +msgstr "" + +#: easyidp.pix4d.read_xyz:11 of +msgid "The offset.xyz file looks like:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:2 +msgid "easyidp.pointcloud.PointCloud" +msgstr "" + +#: ../../python_api/pointcloud.rst:17::1 +#: easyidp.pointcloud.PointCloud:1 of +msgid "" +"EasyIDP defined PointCloud class, consists by point coordinates, and " +"optionally point colors and point normals." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.__init__:1 of +msgid "The method to initialize the PointCloud class" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:3 of +msgid "" +"The point cloud file path for loading/reading, by default \"\", means " +"create an empty point cloud class" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:5 of +msgid "" +"This parameter is used to specify your own offsets rather than the " +"automatically calculated one. .. note:: When the point cloud xyz " +"value is too large, need to deduct duplicate values (minus offsets) to " +"save the memory cost and increase the precision. .. caution:: For " +"some Pix4D produced pointcloud, the point cloud itself has been offseted," +" need manually add the offset value back." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:5 of +msgid "" +"This parameter is used to specify your own offsets rather than the " +"automatically calculated one." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:9 of +msgid "" +"When the point cloud xyz value is too large, need to deduct duplicate " +"values (minus offsets) to save the memory cost and increase the " +"precision." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:13 of +msgid "" +"For some Pix4D produced pointcloud, the point cloud itself has been " +"offseted, need manually add the offset value back." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:18 of +msgid "**Prepare**" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:20 of +msgid "Cancel the numpy scientific counting method display:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:27 of +msgid "Package loading:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:34 of +msgid "**Read large xyz point cloud**" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:36 of +msgid "Most point cloud use the CRS (GPS) coordianate as xyz values directly." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:50 of +msgid "" +"If store these values directly, will cost a lot of memeory with precision" +" loss. But with offsets, the data can be stored more neatly in the " +"EasyIDP:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:65 of +msgid "**Manually specify offset**" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:67 of +msgid "" +"The previous offset is calculated automatically by EasyIDP, you can also " +"manually specify the offset values:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:83 of +msgid "" +"Though the inner stored values changed, it does not affect the final " +"point valus:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:96 of +msgid "**Read Pix4D offseted point cloud and add offset back**" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:98 of +msgid "If you read the Pix4D produced point cloud directly:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:113 of +msgid "" +"Here the xyz seems not the correct one, when we check the Pix4D project " +"``{name}_offset.xyz`` file in the param folders, we can find the offset " +"values stored by Pix4D." +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:121 of +msgid "" +"This often requires user manually add that offset back to point cloud. " +"But EasyIDP supports dealing with such situation easily:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:139 of +msgid "" +"You can also obtain the ``p4d_offset_np`` by :class:`easyidp.Pix4D " +"` object:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.__init__:149 of +msgid "And feed it to the previous function:" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`__init__ `\\ " +"\\(\\[pcd\\_path\\, offset\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid ":py:obj:`clear `\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.clear:1 of +msgid "Delete all points and make an empty point cloud" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`crop_point_cloud " +"`\\ \\(polygon\\_xy\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.crop_point_cloud:1 of +msgid "crop the point cloud along z axis" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`crop_rois `\\ " +"\\(roi\\[\\, save\\_folder\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.crop_rois:1 of +msgid "" +"Crop several ROIs by given or dict object with several polygons and" +" polygon names, along z-axis" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid ":py:obj:`has_colors `\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.has_colors:1 of +msgid "Returns True if the point cloud contains point colors." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid ":py:obj:`has_normals `\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.has_normals:1 of +msgid "Returns True if the point cloud contains point normals." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid ":py:obj:`has_points `\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.has_points:1 of +msgid "Returns True if the point cloud contains points." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`read_point_cloud " +"`\\ \\(pcd\\_path\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.read_point_cloud:1 of +msgid "" +"Open a new point cloud file to overwritting current file, support ply, " +"laz, and las." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid ":py:obj:`save `\\ \\(pcd\\_path\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.save:1 +#: easyidp.pointcloud.PointCloud.write_point_cloud:1 of +msgid "Save current point cloud to a file, support ply, las, laz format." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`update_offset_value " +"`\\ \\(off\\_val\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +#: easyidp.pointcloud.PointCloud.update_offset_value:1 of +msgid "Change the offset value without affecting the xyz point values." +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.PointCloud.rst:31::1 +msgid "" +":py:obj:`write_point_cloud " +"`\\ \\(pcd\\_path\\)" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`offset `\\" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.offset:1 of +msgid "The offset value of point cloud" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`points `\\" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.points:1 of +msgid "The xyz values of point cloud" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`file_path `\\" +msgstr "" + +#: ../../docstring easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.file_path:1 of +msgid "the file path to the current point cloud file" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`file_ext `\\" +msgstr "" + +#: ../../docstring easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.file_ext:1 of +msgid "the file extension to the current point cloud file" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`colors `\\" +msgstr "" + +#: ../../docstring easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.colors:1 of +msgid "The color (RGB) values of point cloud" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`normals `\\" +msgstr "" + +#: ../../docstring easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.normals:1 of +msgid "The normal vector values of point cloud" +msgstr "" + +#: easyidp.pointcloud.PointCloud.clear:1::1 of +msgid ":py:obj:`shape `\\" +msgstr "" + +#: ../../docstring easyidp.pointcloud.PointCloud.clear:1::1 +#: easyidp.pointcloud.PointCloud.shape:1 of +msgid "The size of point cloud (xyz)" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_point_cloud:3 of +msgid "the polygon xy coords" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_point_cloud:25 +#: easyidp.pointcloud.PointCloud.crop_rois:56 of +msgid "Run this function:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois:3 of +msgid "" +"| the object created by easyidp.ROI() | or dict object with key as " +"roi name and value as coordinates" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois of +msgid "the object created by easyidp.ROI()" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois of +msgid "or dict object with key as roi name and value as coordinates" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois:8 easyidp.roi.ROI.crop:7 of +msgid "" +"the folder to save cropped images, use ROI indices as file_names, by " +"default None, means not save." +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois:64 of +msgid "You can also save the output point cloud to given folder by:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.crop_rois:70 of +msgid ":obj:`crop_point_cloud`" +msgstr "" + +#: easyidp.pointcloud.PointCloud.offset:5 of +msgid "" +"If change this value directly, the xyz value of point cloud will also be " +"changed, just like moving the whole point cloud." +msgstr "" + +#: easyidp.pointcloud.PointCloud.offset:9 +#: easyidp.pointcloud.PointCloud.update_offset_value:8 of +msgid "For example, the point cloud like:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.offset:29 of +msgid "Change the offset directly:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.offset:46 of +msgid "" +"If you want to change the offset without affecting the point xyz values, " +"please use :func:`update_offset_value`" +msgstr "" + +#: easyidp.pointcloud.PointCloud.read_point_cloud:5 of +msgid "" +"This operation will totally clear all data of current point cloud, and " +"reopen a new point cloud." +msgstr "" + +#: easyidp.pointcloud.PointCloud.read_point_cloud:7 of +msgid "the path to point cloud file want to open" +msgstr "" + +#: easyidp.pointcloud.PointCloud.read_point_cloud:30 of +msgid "This operation will totally overwrite the previous point cloud" +msgstr "" + +#: easyidp.pointcloud.PointCloud.save:3 +#: easyidp.pointcloud.PointCloud.write_point_cloud:3 of +msgid "" +"The file path of saved point cloud, if file extention not given, will use" +" parent point cloud file extention." +msgstr "" + +#: easyidp.pointcloud.PointCloud.save:6 of +msgid ":obj:`write_point_cloud`" +msgstr "" + +#: easyidp.pointcloud.PointCloud.update_offset_value:3 of +msgid "The offset values want to set" +msgstr "" + +#: easyidp.pointcloud.PointCloud.update_offset_value:28 of +msgid "Change the offset without affecting the xyz values:" +msgstr "" + +#: easyidp.pointcloud.PointCloud.update_offset_value:49 of +msgid "" +"If you want to change the offset like moving point cloud (also change the" +" xyz values), please use :func:`offset`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.read_las.rst:2 +msgid "easyidp.pointcloud.read\\_las" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.read_las:1 of +msgid "Read the las file, the function wrapper for :func:`read_laz`" +msgstr "" + +#: easyidp.pointcloud.read_las:3 easyidp.pointcloud.read_laz:3 +#: easyidp.pointcloud.read_ply:3 of +msgid "The path to las file" +msgstr "" + +#: easyidp.pointcloud.read_las:6 easyidp.pointcloud.read_laz:6 +#: easyidp.pointcloud.read_ply:6 of +msgid "points, colors, normals of given point cloud data" +msgstr "" + +#: easyidp.pointcloud.read_las:37 easyidp.pointcloud.read_laz:37 +#: easyidp.pointcloud.read_ply:37 of +msgid "" +":func:`easyidp.PointCloud.read_point_cloud " +"`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.read_laz.rst:2 +msgid "easyidp.pointcloud.read\\_laz" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.read_laz:1 of +msgid "Read the laz file" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.read_ply.rst:2 +msgid "easyidp.pointcloud.read\\_ply" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.read_ply:1 of +msgid "Read the ply file" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.write_las.rst:2 +msgid "easyidp.pointcloud.write\\_las" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.write_las:1 of +msgid "Save point cloud to las format, the function wrapper for :func:`write_laz`" +msgstr "" + +#: easyidp.pointcloud.write_las:3 easyidp.pointcloud.write_laz:3 +#: easyidp.pointcloud.write_ply:3 of +msgid "the output point cloud file." +msgstr "" + +#: easyidp.pointcloud.write_las:5 easyidp.pointcloud.write_laz:5 +#: easyidp.pointcloud.write_ply:5 of +msgid "the nx3 numpy ndarray of point XYZ info" +msgstr "" + +#: easyidp.pointcloud.write_las:7 easyidp.pointcloud.write_laz:7 +#: easyidp.pointcloud.write_ply:7 of +msgid "the nx3 numpy ndarray of point RGB info, dtype=np.uint8" +msgstr "" + +#: easyidp.pointcloud.write_las:9 easyidp.pointcloud.write_laz:9 +#: easyidp.pointcloud.write_ply:9 of +msgid "the nx3 numpy ndarray of point normal info, by default None" +msgstr "" + +#: easyidp.pointcloud.write_las:11 easyidp.pointcloud.write_laz:11 of +msgid "" +"The offset value defined in the laz file header, by default np.array([0.," +" 0., 0.])" +msgstr "" + +#: easyidp.pointcloud.write_las:13 easyidp.pointcloud.write_laz:13 of +msgid "The decimal for the point value precision, by default 5" +msgstr "" + +#: easyidp.pointcloud.write_las:54 easyidp.pointcloud.write_laz:54 of +msgid "The EasyIDP saved the las file with Las version=1.2" +msgstr "" + +#: easyidp.pointcloud.write_las:56 easyidp.pointcloud.write_laz:56 +#: easyidp.pointcloud.write_ply:84 of +msgid "" +":func:`easyidp.PointCloud.write_point_cloud " +"`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.write_laz.rst:2 +msgid "easyidp.pointcloud.write\\_laz" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.write_laz:1 of +msgid "Save point cloud to laz format" +msgstr "" + +#: ../../python_api/autodoc/easyidp.pointcloud.write_ply.rst:2 +msgid "easyidp.pointcloud.write\\_ply" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +#: easyidp.pointcloud.write_ply:1 of +msgid "Save point cloud to ply format" +msgstr "" + +#: easyidp.pointcloud.write_ply:11 of +msgid "" +"whether save the binary file. True: save BINARY ply file (by default) " +"False: save ASCII ply file." +msgstr "" + +#: easyidp.pointcloud.write_ply:52 of +msgid "(For developers)" +msgstr "" + +#: easyidp.pointcloud.write_ply:54 of +msgid "" +"The ``plyfile`` packages requires to convert the ndarray outputs to numpy" +" structured arrays [1]_ , then save the point cloud structure looks like " +"this:" +msgstr "" + +#: easyidp.pointcloud.write_ply:76 of +msgid "" +"convert ndarray to strucutred array [2]_ and method to merge to " +"structured arrays [3]_" +msgstr "" + +#: easyidp.pointcloud.write_ply:80 of +msgid "https://github.com/dranjan/python-plyfile#creating-a-ply-file" +msgstr "" + +#: easyidp.pointcloud.write_ply:81 of +msgid "" +"https://stackoverflow.com/questions/3622850/converting-a-2d-numpy-array-" +"to-a-structured-array" +msgstr "" + +#: easyidp.pointcloud.write_ply:82 of +msgid "" +"https://stackoverflow.com/questions/5355744/numpy-joining-structured-" +"arrays" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:2 +msgid "easyidp.reconstruct.Calibration" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +#: easyidp.reconstruct.Calibration:1 of +msgid "The base class for camera lens distortion calibration" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:22::1 +msgid "" +":py:obj:`__init__ `\\ " +"\\(\\[sensor\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:22::1 +msgid "" +":py:obj:`calibrate `\\ \\(u\\," +" v\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Calibration.rst:22::1 +#: easyidp.reconstruct.Calibration.calibrate:1 of +msgid "Convert undistorted images -> original image pixel coordinate" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`software `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.software:1 of +msgid "" +"the calibration model from which reconstruction software, in [\"pix4d\", " +"\"metashape\"], ````" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`type `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.type:1 of +msgid "" +"the calibration type, same as the sensor.type, in [frame, fisheye, " +"spherical, rpc], by default 'frame'" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`sensor `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.sensor:1 of +msgid "" +"the object of the camera model (sensor), :py:class:`Sensor " +"`" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`f `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid "focal length, unit is pixel, for pix4d project, convert mm to pixel." +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`cx `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.cx:1 easyidp.reconstruct.Calibration.cy:1 of +msgid "principle point offset, unit is pixel." +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`cy `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`b1 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1 +#: easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.b2:1 of +msgid "" +"affinity and non-orthogonality (skew) coefficients (in pixels) [metashape" +" use only]" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`b2 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`k1 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.k1:1 of +msgid "" +"len distortion coefficient, different between pix4d and metashape, please" +" check below for more details" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`k2 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.k2:1 easyidp.reconstruct.Calibration.k3:1 +#: easyidp.reconstruct.Calibration.k4:1 of +msgid "len distortion coefficient" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`k3 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`k4 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`t1 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.t1:1 of +msgid "Tangential Lens Distortion Coefficients, for Pix4D." +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`t2 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.p2:1 easyidp.reconstruct.Calibration.p3:1 +#: easyidp.reconstruct.Calibration.p4:1 easyidp.reconstruct.Calibration.t2:1 +#: easyidp.reconstruct.Calibration.t3:1 easyidp.reconstruct.Calibration.t4:1 of +msgid "Tangential Lens Distortion Coeffs" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`t3 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`t4 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`p1 `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.b1:1::1 +#: easyidp.reconstruct.Calibration.p1:1 of +msgid "Tangential Lens Distortion Coefficients, for Metashape." +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`p2 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`p3 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.b1:1::1 of +msgid ":py:obj:`p4 `\\" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:3 of +msgid "the x pixel coordinate after R transform" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:5 of +msgid "the y pixel coordinate after R transform" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:8 of +msgid "the pixel coordinate on the original image" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:13 of +msgid "The calculation formular can be references by :" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:15 of +msgid "Pix4D: #2.1.2 section in [1]_ ." +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:16 of +msgid "Metashape: Appendix C. Camera models in [2]_ ." +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:20 of +msgid "" +"https://support.pix4d.com/hc/en-us/articles/202559089-How-are-the-" +"Internal-and-External-Camera-Parameters-defined" +msgstr "" + +#: easyidp.reconstruct.Calibration.calibrate:21 of +msgid "https://www.agisoft.com/pdf/metashape-pro_1_7_en.pdf" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.cx:4 of +msgid "" +"In the older version of metashape, Cx and Cy were given in pixels from " +"the top-left corner of the image. But in the latest release version they " +"are measured as offset from the image center. Reference: " +"`https://www.agisoft.com/forum/index.php?topic=5827.0``" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.f:1 of +msgid "" +"focal length, unit is pixel, for pix4d project, convert mm to pixel. " +"````" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.k1:3 of +msgid "``pix4d``: Symmetrical Lens Distortion Coeffs" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.k1:4 of +msgid "``metashape``: radial distortion coefficients (dimensionless)" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.p1:5 +#: easyidp.reconstruct.Calibration.t1:5 of +msgid "``pix4d``: Tangential Lens Distortion Coeffs, use T" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Calibration.p1:6 +#: easyidp.reconstruct.Calibration.t1:6 of +msgid "``metashape``: tangential distortion coefficient, use P" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst:2 +msgid "easyidp.reconstruct.ChunkTransform" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +#: easyidp.reconstruct.ChunkTransform:1 of +msgid "" +"Similar API wrapper for Metashape Python API ``class " +"Metashape.ChunkTransform``" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.ChunkTransform.rst:21::1 +msgid ":py:obj:`__init__ `\\ \\(\\)" +msgstr "" + +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid ":py:obj:`matrix `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix:1 +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid "Transformation matrix" +msgstr "" + +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid ":py:obj:`rotation `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix:1::1 +#: easyidp.reconstruct.ChunkTransform.rotation:1 of +msgid "Rotation compone" +msgstr "" + +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid ":py:obj:`translation `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix:1::1 +#: easyidp.reconstruct.ChunkTransform.translation:1 of +msgid "Translation compone" +msgstr "" + +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid ":py:obj:`scale `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix:1::1 +#: easyidp.reconstruct.ChunkTransform.scale:1 of +msgid "Scale compone" +msgstr "" + +#: easyidp.reconstruct.ChunkTransform.matrix:1::1 of +msgid ":py:obj:`matrix_inv `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix:1::1 +#: easyidp.reconstruct.ChunkTransform.matrix_inv:1 of +msgid "Inverse matrix" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix_inv:5 of +msgid "Inspired from Kunihiro Kodama's Metashape API usage " +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix_inv:14 of +msgid "" +"invm.mulp(local_vec) --> transform chunk local coord to world coord (if " +"you handle vec in local coord)" +msgstr "" + +#: ../../docstring easyidp.reconstruct.ChunkTransform.matrix_inv:16 of +msgid "" +"How to calculate from xml data: `Agisoft Forum: Topic: Camera coordinates" +" to world `_" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Photo.rst:2 +msgid "easyidp.reconstruct.Photo" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +#: easyidp.reconstruct.Photo:1 of +msgid "" +"The base class to store image information used in 3D reconstruction " +"project" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Photo.rst:21::1 +msgid "" +":py:obj:`__init__ `\\ " +"\\(\\[sensor\\]\\)" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`id `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.id:1 of +msgid "The id of current image in reconstruction project, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`path `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.path:1 of +msgid "The image path in local computer, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`label `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.label:1 of +msgid "the image name, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`sensor_id `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.sensor_id:1 of +msgid "the id of the camera model (sonsor), ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`sensor `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.sensor:1 of +msgid "" +"the object of the camera model (sensor), :class:`easyidp.Sensor " +"`" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`enabled `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.enabled:1 of +msgid "whether this image is used in the 3D reconstruction, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`cam_matrix `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1 +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid "" +"the 3x3 camera matrix, the ``K`` in ``K[R t]``, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`location `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.location:1 of +msgid "" +"the 3x1 vector of camera location, the ``t`` in ``K[R t]``, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`rotation `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.rotation:1 of +msgid "" +"the 3x3 rotation matrix, the ``R`` in ``K[R t]``, ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`transform `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.transform:1 of +msgid "" +"the transform matrix, different between pix4d and metashape project, " +"please check below for more details ````" +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`translation `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.translation:1 of +msgid "the 3x1 translation vector, often provided by metashape." +msgstr "" + +#: easyidp.reconstruct.Photo.cam_matrix:1::1 of +msgid ":py:obj:`position `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.cam_matrix:1::1 +#: easyidp.reconstruct.Photo.position:1 of +msgid "" +"The 3x1 vector of geo coodinate of image in real world, ````" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.transform:3 of +msgid "" +"In ``metashape``: it is the 4x4 matrix describing photo location in the " +"chunk coordinate system -> ``K[R t]``" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Photo.transform:4 of +msgid "" +"in ``pix4d``: it is the 3x4 pmatrix. Please check `Pix4D PMatrix " +"documentation ` for more details" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Recons.rst:2 +msgid "easyidp.reconstruct.Recons" +msgstr "" + +#: easyidp.reconstruct.Recons:1 of +msgid "" +"The base class for reconstruction project. Used for each individual Pix4D" +" project and each chunk in Metashape project" +msgstr "" + +#: easyidp.reconstruct.Recons:5 of +msgid "Coordinate systems used in the 3D reconstruction." +msgstr "" + +#: easyidp.reconstruct.Recons:7 of +msgid "internal coordinate (local):" +msgstr "" + +#: easyidp.reconstruct.Recons:9 of +msgid "" +"the coordinate used in current chunk, often the center of model as " +"initial point" +msgstr "" + +#: easyidp.reconstruct.Recons:11 of +msgid "geocentric coordinate (world):" +msgstr "" + +#: easyidp.reconstruct.Recons:13 of +msgid "use the earth's core as initial point, also called world coordinate" +msgstr "" + +#: easyidp.reconstruct.Recons:15 of +msgid "geographic coordinate (crs):" +msgstr "" + +#: easyidp.reconstruct.Recons:17 of +msgid "" +"coordinate reference system (CRS) to locate geographical entities. Common" +" used:" +msgstr "" + +#: easyidp.reconstruct.Recons:19 of +msgid "``WGS84 (EPSG: 4326)``: xyz = longitude, latitude, altitude" +msgstr "" + +#: easyidp.reconstruct.Recons:20 of +msgid "``WGS84/ UTM Zone xxx``: e.g. UTM Zone 54N -> Tokyo area." +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Recons.rst:21::1 +msgid ":py:obj:`__init__ `\\ \\(\\)" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`crs `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`dom `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`dsm `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`pcd `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`label `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.label:1 of +msgid "the 3D reconstruction project name, ````" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`meta `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Recons.crs:1::1 +#: easyidp.reconstruct.Recons.meta:1 of +msgid "meta information in this project, ````" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`enabled `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`sensors `\\" +msgstr "" + +#: easyidp.reconstruct.Recons.crs:1::1 of +msgid ":py:obj:`photos `\\" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:2 +msgid "easyidp.reconstruct.Sensor" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +#: easyidp.reconstruct.Sensor:1 of +msgid "The base class of camera model" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:22::1 +msgid ":py:obj:`__init__ `\\ \\(\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:22::1 +msgid "" +":py:obj:`in_img_boundary `\\ " +"\\(polygon\\_hv\\[\\, ignore\\, log\\]\\)" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.Sensor.rst:22::1 +#: easyidp.reconstruct.Sensor.in_img_boundary:1 of +msgid "" +"Judge whether given polygon is in the image area, and move points to " +"boundary if specify ignore." +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`id `\\" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid "the sensor id in this 3D reconstruction project, often only has one." +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`label `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.label:1 of +msgid "the sensor label/name, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`type `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.type:1 of +msgid "" +"Sensor type in [frame, fisheye, spherical, rpc] (often for metashape " +"project), ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`width `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.width:1 of +msgid "The sensor width pixel number, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`height `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.height:1 of +msgid "The sensor height pixel number, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`w_mm `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.w_mm:1 of +msgid "sensor actual width, unit is mm, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`h_mm `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.h_mm:1 of +msgid "sensor actual height, unit is mm, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`pixel_width `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.pixel_width:1 of +msgid "the scale of one pixel width, unit in mm, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`pixel_height `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.pixel_height:1 of +msgid "the scale of one pixel height, unit in mm, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`pixel_size `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.pixel_size:1 of +msgid "the scale of one pixel, for pix4d, [pixel_height, pixel_width]" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`focal_length `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1::1 +#: easyidp.reconstruct.Sensor.focal_length:1 of +msgid "focal length, unit in mm, ````" +msgstr "" + +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid ":py:obj:`calibration `\\" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.calibration:1 +#: easyidp.reconstruct.Sensor.calibration:1::1 of +msgid "" +"sensor calibration information, :py:class:`easyidp.Calibration " +"`" +msgstr "" + +#: ../../docstring easyidp.reconstruct.Sensor.id:1 of +msgid "" +"the sensor id in this 3D reconstruction project, often only has one. " +"````" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:3 of +msgid "[horizontal, vertical] points in pixel coordinate" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:5 of +msgid "" +"Whether tolerate small parts outside image - ``None``: strickly in image" +" area; - ``x``: only y (vertical) in image area, x can outside image; - " +"``y``: only x (horizontal) in image area, y can outside image. .. todo::" +" This API will be enhanced and changed in the future. " +"``ignore`` (str) -> ``ignore_overflow`` (bool): - ``True``: strickly" +" in image area, default; - ``False``: cut the polygon inside the " +"image range; .. image:: " +"../../_static/images/python_api/back2raw_ignore_todo.png :alt: " +"back2raw_ignore_todo.png' :scale: 60" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:5 of +msgid "Whether tolerate small parts outside image" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:11 of +msgid "待处理" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:13 of +msgid "This API will be enhanced and changed in the future." +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:15 of +msgid "``ignore`` (str) -> ``ignore_overflow`` (bool):" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:17 of +msgid "``True``: strickly in image area, default;" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:18 of +msgid "``False``: cut the polygon inside the image range;" +msgstr "" + +#: easyidp.reconstruct.Sensor.in_img_boundary:11 of +msgid "back2raw_ignore_todo.png'" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.save_back2raw_json_and_png.rst:2 +msgid "easyidp.reconstruct.save\\_back2raw\\_json\\_and\\_png" +msgstr "" + +#: ../../python_api/reconstruct.rst:110::1 +#: easyidp.reconstruct.save_back2raw_json_and_png:1 of +msgid "Save the backward reversed results" +msgstr "" + +#: easyidp.reconstruct.save_back2raw_json_and_png:3 of +msgid "" +"the outputs of :func:`back2raw() ` function " +"results" +msgstr "" + +#: easyidp.reconstruct.save_back2raw_json_and_png:5 of +msgid "the folder to save output files" +msgstr "" + +#: ../../python_api/autodoc/easyidp.reconstruct.sort_img_by_distance.rst:2 +msgid "easyidp.reconstruct.sort\\_img\\_by\\_distance" +msgstr "" + +#: easyidp.reconstruct.sort_img_by_distance:3 of +msgid "The reconsturction project class" +msgstr "" + +#: easyidp.reconstruct.sort_img_by_distance:17 of +msgid "the same structure as output of roi.back2raw()" +msgstr "" + +#: ../../python_api/autodoc/easyidp.roi.read_cc_txt.rst:2 +msgid "easyidp.roi.read\\_cc\\_txt" +msgstr "" + +#: ../../python_api/roi.rst:33::1 easyidp.roi.read_cc_txt:1 of +msgid "Read the point cloud annotation made by cloudcompare" +msgstr "" + +#: easyidp.roi.read_cc_txt:3 of +msgid "The path to cloudcompare annotation txt file" +msgstr "" + +#: easyidp.roi.read_cc_txt:6 of +msgid "" +"Please refer :ref:`make-roi-on-point-cloud` to know how to prepare txt " +"roi annotation in CloudCompare for point cloud." +msgstr "" + +#: ../../python_api/autodoc/easyidp.shp.read_proj.rst:2 +msgid "easyidp.shp.read\\_proj" +msgstr "" + +#: ../../python_api/shp.rst:21::1 easyidp.shp.read_proj:1 of +msgid "read \\*.prj file to pyproj object" +msgstr "" + +#: easyidp.shp.read_proj:3 of +msgid "the file path of shp \\*.prj" +msgstr "" + +#: ../../python_api/autodoc/easyidp.shp.read_shp.rst:2 +msgid "easyidp.shp.read\\_shp" +msgstr "" + +#: ../../python_api/shp.rst:21::1 easyidp.shp.read_shp:1 of +msgid "read shp file to python numpy object" +msgstr "" + +#: easyidp.roi.ROI.read_shp:3 easyidp.shp.read_shp:3 +#: easyidp.shp.show_shp_fields:3 of +msgid "the file path of \\*.shp" +msgstr "" + +#: easyidp.shp.read_shp:5 of +msgid "" +"by default None, will read automatically from prj file with the same name" +" of shp filename, or give manually by ``read_shp(..., " +"shp_proj=pyproj.CRS.from_epsg(4326), ...)`` or ``read_shp(..., " +"shp_proj=r'path/to/{shp_name}.prj', ...)``" +msgstr "" + +#: easyidp.roi.ROI.read_shp:13 easyidp.shp.read_shp:13 of +msgid "by default 'utf-8', for some chinese characters, 'gbk' may required" +msgstr "" + +#: easyidp.shp.read_shp:28 of +msgid "The example shp file has the following columns:" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[0] ID" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[1] MASSIFID" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[2] CROPTYPE" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[3] CROPDATE" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[4] CROPAREA" +msgstr "" + +#: easyidp.shp.read_shp:31 of +msgid "[5] ATTID" +msgstr "" + +#: easyidp.shp.read_shp:33 of +msgid "23010...0000" +msgstr "" + +#: easyidp.shp.read_shp:33 of +msgid "小麦" +msgstr "" + +#: easyidp.shp.read_shp:33 easyidp.shp.read_shp:35 easyidp.shp.read_shp:37 +#: easyidp.shp.read_shp:39 easyidp.shp.read_shp:41 easyidp.shp.read_shp:45 +#: easyidp.shp.read_shp:47 easyidp.shp.read_shp:49 easyidp.shp.read_shp:51 +#: easyidp.shp.read_shp:53 of +msgid "2018-09-01" +msgstr "" + +#: easyidp.shp.read_shp:33 of +msgid "61525.26302" +msgstr "" + +#: easyidp.shp.read_shp:35 of +msgid "23010...0012" +msgstr "" + +#: easyidp.shp.read_shp:35 of +msgid "蔬菜" +msgstr "" + +#: easyidp.shp.read_shp:35 of +msgid "2802.33512" +msgstr "" + +#: easyidp.shp.read_shp:37 of +msgid "23010...0014" +msgstr "" + +#: easyidp.shp.read_shp:37 easyidp.shp.read_shp:41 of +msgid "玉米" +msgstr "" + +#: easyidp.shp.read_shp:37 of +msgid "6960.7745" +msgstr "" + +#: easyidp.shp.read_shp:39 of +msgid "23010...0061" +msgstr "" + +#: easyidp.shp.read_shp:39 of +msgid "牧草" +msgstr "" + +#: easyidp.shp.read_shp:39 of +msgid "25349.08639" +msgstr "" + +#: easyidp.shp.read_shp:41 of +msgid "23010...0062" +msgstr "" + +#: easyidp.shp.read_shp:41 of +msgid "71463.27666" +msgstr "" + +#: easyidp.shp.read_shp:43 of +msgid "..." +msgstr "" + +#: easyidp.shp.read_shp:45 of +msgid "23010...0582" +msgstr "" + +#: easyidp.shp.read_shp:45 of +msgid "胡萝卜" +msgstr "" + +#: easyidp.shp.read_shp:45 of +msgid "288.23876" +msgstr "" + +#: easyidp.shp.read_shp:47 of +msgid "23010...0577" +msgstr "" + +#: easyidp.shp.read_shp:47 of +msgid "杂豆" +msgstr "" + +#: easyidp.shp.read_shp:47 of +msgid "2001.80384" +msgstr "" + +#: easyidp.shp.read_shp:49 of +msgid "23010...0583" +msgstr "" + +#: easyidp.shp.read_shp:49 of +msgid "大豆" +msgstr "" + +#: easyidp.shp.read_shp:49 of +msgid "380.41704" +msgstr "" + +#: easyidp.shp.read_shp:51 of +msgid "23010...0584" +msgstr "" + +#: easyidp.shp.read_shp:51 easyidp.shp.read_shp:53 of +msgid "其它" +msgstr "" + +#: easyidp.shp.read_shp:51 of +msgid "9133.25998" +msgstr "" + +#: easyidp.shp.read_shp:53 of +msgid "23010...0585" +msgstr "" + +#: easyidp.shp.read_shp:53 of +msgid "1704.27193" +msgstr "" + +#: easyidp.shp.read_shp:56 of +msgid "First, prepare data" +msgstr "" + +#: easyidp.shp.read_shp:64 of +msgid "Then using the second column ``MASSIFID`` as shape keys:" +msgstr "" + +#: easyidp.shp.read_shp:80 of +msgid "" +"Due to the duplication of ``CROPTYPE``, you can not using it as the " +"unique key, but you can combine several columns together by passing a " +"list to ``name_field``:" +msgstr "" + +#: easyidp.shp.read_shp:100 of +msgid ":obj:`easyidp.jsonfile.read_geojson`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.shp.show_shp_fields.rst:2 +msgid "easyidp.shp.show\\_shp\\_fields" +msgstr "" + +#: ../../python_api/shp.rst:21::1 easyidp.shp.show_shp_fields:1 of +msgid "" +"Show geojson properties data, for better setting ``name_field`` of " +":py:obj:`read_shp `" +msgstr "" + +#: easyidp.shp.show_shp_fields:5 of +msgid "default is 'utf-8', however, or some chinese characters, 'gbk' is required" +msgstr "" + +#: easyidp.roi.ROI.read_geojson:58 easyidp.shp.show_shp_fields:37 of +msgid ":obj:`easyidp.jsonfile.show_geojson_fields`" +msgstr "" + +#: ../../python_api/autodoc/easyidp.visualize.draw_backward_one_roi.rst:2 +msgid "easyidp.visualize.draw\\_backward\\_one\\_roi" +msgstr "" + +#: ../../python_api/visualize.rst:17::1 +#: easyidp.visualize.draw_backward_one_roi:1 of +msgid "Plot one ROI results on all available images." +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:3 of +msgid "The 3D reconstruction project object" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:5 of +msgid "" +"| The dictionary of one ROI backward to all images. | e.g. " +"``{\"IMG_2345\": np.array([...]), \"IMG_2346\": np.array([])}``" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi of +msgid "The dictionary of one ROI backward to all images." +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi of +msgid "e.g. ``{\"IMG_2345\": np.array([...]), \"IMG_2346\": np.array([])}``" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:8 of +msgid "The pixel buffer number around the backward ROI results, by default 40" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:10 +#: easyidp.visualize.draw_polygon_on_img:11 of +msgid "" +"The image title displayed on the top, by default None -> ``Projection on " +"[img_name]``" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:38 of +msgid "Then use this code to show the results of ROI [N1W1]:" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:44 +#: easyidp.visualize.draw_polygon_on_img:69 +#: easyidp.visualize.draw_polygon_on_img:86 of +msgid "It will get the following figure:" +msgstr "" + +#: easyidp.visualize.draw_backward_one_roi:-1 of +msgid "draw_backward_one_roi.png'" +msgstr "" + +#: ../../python_api/autodoc/easyidp.visualize.draw_polygon_on_img.rst:2 +msgid "easyidp.visualize.draw\\_polygon\\_on\\_img" +msgstr "" + +#: ../../python_api/visualize.rst:17::1 +#: easyidp.visualize.draw_polygon_on_img:1 of +msgid "Plot one polygon on given image." +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:3 of +msgid "the image file name." +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:5 of +msgid "the file path of image" +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:7 of +msgid "the 2D polygon pixel coordinate on the image" +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:46 of +msgid "" +"Then do backward projection, find the previous ROI positions on the raw " +"images." +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:58 of +msgid "The using this function to check one polygon on raw images" +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:-1 of +msgid "p4d_back2raw_single_view.png'" +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:75 of +msgid "" +"Add an corrected polygon (here manual shifting 10 pixels just as " +"example), and change the color and alpha info:" +msgstr "" + +#: easyidp.visualize.draw_polygon_on_img:-1 of +msgid "p4d_back2raw_single_view2.png'" +msgstr "" + +#: ../../python_api/cvtools.rst:3 +msgid "• cvtools" +msgstr "" + +#: ../../python_api/cvtools.rst:7 +msgid "" +"This is a package for simple imarray operations. Mainly about creating " +"binary masks and cropping image parts from given polygon coordinates." +msgstr "" + +#: ../../python_api/cvtools.rst:10 +msgid "" +"It can be viewed as a submodule for the :class:`easyidp.GeoTiff " +"` class." +msgstr "" + +#: ../../python_api/cvtools.rst:13 ../../python_api/data.rst:76 +#: ../../python_api/geotiff.rst:19 ../../python_api/geotools.rst:11 +#: ../../python_api/json.rst:15 ../../python_api/metashape.rst:20 +#: ../../python_api/pix4d.rst:19 ../../python_api/pointcloud.rst:19 +#: ../../python_api/reconstruct.rst:104 ../../python_api/roi.rst:24 +#: ../../python_api/shp.rst:10 ../../python_api/visualize.rst:11 +msgid "Functions" +msgstr "" + +#: ../../python_api/cvtools.rst:20::1 +msgid "" +":py:obj:`imarray_crop `\\ \\(imarray\\, " +"polygon\\_hv\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/cvtools.rst:20::1 +msgid "" +":py:obj:`poly2mask `\\ \\(image\\_shape\\, " +"poly\\_coord\\[\\, engine\\]\\)" +msgstr "" + +#: ../../python_api/cvtools.rst:20::1 +msgid ":py:obj:`rgb2gray `\\ \\(rgb\\)" +msgstr "" + +#: ../../python_api/data.rst:3 +msgid "Data" +msgstr "" + +#: ../../python_api/data.rst:8 +msgid "Dataset" +msgstr "" + +#: ../../python_api/data.rst:10 +msgid "The datasets are as follows (**for user**):" +msgstr "" + +#: ../../python_api/data.rst:17::1 +msgid ":py:obj:`Lotus `\\ \\(\\)" +msgstr "" + +#: ../../python_api/data.rst:17::1 +msgid ":py:obj:`ForestBirds `\\ \\(\\)" +msgstr "" + +#: ../../python_api/data.rst:18 +msgid "Use example:" +msgstr "" + +#: ../../python_api/data.rst:39 +msgid "" +"For Chinese mainland user who can not access the GoogleDrive directly, " +"the author personally setup an AliYun OSS downloading services in " +"**2.0.1**, please update EasyIDP to the latest version (probably required" +" :ref:`using-from-source-code`) and try:" +msgstr "" + +#: ../../python_api/data.rst:47 +msgid "Then it will give an cost notice in Chinese for you to confirm:" +msgstr "" + +#: ../../python_api/data.rst:58 +msgid "" +"After typing the required sentences, it will downloading the dataset " +"automatically from AliYun OSS services just like google cloud " +"performance." +msgstr "" + +#: ../../python_api/data.rst:66 +msgid "The dataset base class and testing class (**for developers**):" +msgstr "" + +#: ../../python_api/data.rst:74::1 +msgid "" +":py:obj:`EasyidpDataSet `\\ \\(\\[name\\, " +"gdrive\\_url\\, size\\]\\)" +msgstr "" + +#: ../../python_api/data.rst:74::1 +msgid ":py:obj:`TestData `\\ \\(\\[test\\_out\\]\\)" +msgstr "" + +#: ../../python_api/data.rst:86::1 +msgid "" +":py:obj:`user_data_dir `\\ " +"\\(\\[file\\_name\\]\\)" +msgstr "" + +#: ../../python_api/data.rst:86::1 +msgid ":py:obj:`show_data_dir `\\ \\(\\)" +msgstr "" + +#: ../../python_api/data.rst:86::1 +msgid ":py:obj:`url_checker `\\ \\(url\\)" +msgstr "" + +#: ../../python_api/data.rst:86::1 +msgid ":py:obj:`download_all `\\ \\(\\)" +msgstr "" + +#: ../../python_api/data.rst:87 +msgid "The functions can be used by:" +msgstr "" + +#: ../../python_api/geotiff.rst:3 +msgid "GeoTiff" +msgstr "" + +#: ../../python_api/geotiff.rst:8 ../../python_api/metashape.rst:9 +#: ../../python_api/pix4d.rst:8 ../../python_api/pointcloud.rst:8 +#: ../../python_api/reconstruct.rst:13 ../../python_api/roi.rst:8 +msgid "Class" +msgstr "" + +#: ../../python_api/geotiff.rst:10 +msgid "" +"A summary of class ``easyidp.pointcloud.GeoTiff``, can be simple accessed" +" by ``easyidp.GeoTiff``" +msgstr "" + +#: ../../python_api/geotiff.rst:17::1 +msgid ":py:obj:`GeoTiff `\\ \\(\\[tif\\_path\\]\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:21 +msgid "" +"This module (``easyidp.geotiff``) also contains the following standard-" +"alone functions for preocessing GeoTiff file directly." +msgstr "" + +#: ../../python_api/geotiff.rst:25 +msgid "" +"The :class:`easyidp.GeoTiff ` class is an " +"advanced wrapper around the following functions, which is generally " +"sufficient for most simple application cases, please don't use the " +"following functions unless you really need them." +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid ":py:obj:`get_header `\\ \\(tif\\_path\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid ":py:obj:`get_imarray `\\ \\(tif\\_path\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid "" +":py:obj:`geo2pixel `\\ \\(points\\_hv\\, " +"header\\[\\, return\\_index\\]\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid "" +":py:obj:`pixel2geo `\\ \\(points\\_hv\\, " +"header\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid "" +":py:obj:`tifffile_crop `\\ \\(page\\, " +"top\\, left\\, h\\, w\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid "" +":py:obj:`point_query `\\ \\(page\\, " +"points\\_hv\\[\\, header\\]\\)" +msgstr "" + +#: ../../python_api/geotiff.rst:36::1 +msgid "" +":py:obj:`save_geotiff `\\ \\(header\\, " +"imarray\\, ...\\)" +msgstr "" + +#: ../../python_api/geotools.rst:3 +msgid "• geotools" +msgstr "" + +#: ../../python_api/geotools.rst:7 +msgid "This is a package for simple geo-coordinate transformation." +msgstr "" + +#: ../../python_api/geotools.rst:19::1 +msgid "" +":py:obj:`convert_proj `\\ \\(shp\\_dict\\," +" crs\\_origin\\, crs\\_target\\)" +msgstr "" + +#: ../../python_api/geotools.rst:19::1 +msgid "" +":py:obj:`convert_proj3d `\\ " +"\\(points\\_np\\, crs\\_origin\\, crs\\_target\\)" +msgstr "" + +#: ../../python_api/geotools.rst:19::1 +msgid "" +":py:obj:`is_single_point `\\ " +"\\(points\\_np\\)" +msgstr "" + +#: ../../python_api/index.rst:3 +msgid "API Summary" +msgstr "API概要" + +#: ../../python_api/index.rst:5 +msgid "The EasyIDP package have the following modules:" +msgstr "" + +#: ../../python_api/index.rst:7 +msgid ":doc:`Data Module <./data>` : Download and provide path to example files." +msgstr "" + +#: ../../python_api/index.rst:8 +msgid "" +":doc:`Point cloud Module <./pointcloud>` : read, write, check and crop " +"operation." +msgstr "" + +#: ../../python_api/index.rst:9 +msgid "" +":doc:`GeoTiff Module <./geotiff>` : read, write, crop, and statistics " +"operation." +msgstr "" + +#: ../../python_api/index.rst:11 +msgid ":doc:`cvtools Submodule <./cvtools>` : processing ndarray images." +msgstr "" + +#: ../../python_api/index.rst:13 +msgid ":doc:`ROI Module <./roi>` : read region of interest from shp and txt file." +msgstr "" + +#: ../../python_api/index.rst:15 +msgid ":doc:`shp Submodule <./shp>`: read shape (\\*.shp) file." +msgstr "" + +#: ../../python_api/index.rst:16 +msgid ":doc:`jsonfile Submodule <./json>`: read and write json and geojson file." +msgstr "" + +#: ../../python_api/index.rst:17 +msgid ":doc:`geotools Submodule <./geotools>`: transform geo-coordinate." +msgstr "" + +#: ../../python_api/index.rst:19 +msgid "" +":doc:`reconstruct Module <./reconstruct>` : process 3D reconstruction " +"software project." +msgstr "" + +#: ../../python_api/index.rst:21 +msgid ":doc:`Pix4D Submodule <./pix4d>`: handle Pix4D projects." +msgstr "" + +#: ../../python_api/index.rst:22 +msgid ":doc:`Metashape Submodule <./metashape>`: handle Metashape projects." +msgstr "" + +#: ../../python_api/index.rst:24 +msgid "" +":doc:`visualize Module <./visualize>` : Draw visualization figures for " +"the output." +msgstr "" + +#: ../../python_api/index.rst:27 +msgid "" +"For each module, consisted by several base functions (e.g. " +"``easyidp.geotiff.*`` ) and an advanced wrapper class for them (e.g. " +"``easyidp.GeoTiff``). In the most cases, please use the upper case class " +"wrapper rather than the lowercase base functions unless you really need " +"them." +msgstr "" + +#: ../../python_api/index.rst:29 +msgid "For example, this function can be used to read geotiff meta infomation:" +msgstr "" + +#: ../../python_api/index.rst:36 +msgid "" +"But it is more recommended use the advanced wrapper in most application " +"cases:" +msgstr "" + +#: ../../python_api/index.rst:43 +msgid "" +"Although it may seem like more code, advanced wrappers have more " +"convenient functions to use without caring about specific data structure " +"details. Most of our example cases are using the advanced class wrapper." +msgstr "" + +#: ../../python_api/index.rst:47 +msgid "" +"The :class:`easyidp.Container` object, its child objects, and objects " +"contains this object, like :class:`easyidp.ROI ` , " +"``ProjectPool`` , :class:`easyidp.Recons ` , " +":class:`easyidp.Pix4D ` , :class:`easyidp.Metashape " +"`, can not be saved by pickle." +msgstr "" + +#: ../../python_api/index.rst:49 +msgid "" +"Please check this link for more details `What can be pickled and " +"unpickled `_ ." +msgstr "" + +#: ../../python_api/json.rst:5 +msgid "• jsonfile" +msgstr "" + +#: ../../python_api/json.rst:9 +msgid "" +"This is a package for simple json file operations. Mainly about reading " +"and writting json files from python dict object." +msgstr "" + +#: ../../python_api/json.rst:12 +msgid "" +"It can be viewed as a submodule for the :class:`easyidp.ROI " +"` class." +msgstr "" + +#: ../../python_api/json.rst:19 +msgid "" +"The ``easyidp.ROI`` class is an advanced wrapper around the following " +"functions, which is generally sufficient for most simple application " +"cases, please don't use the following functions unless you really need " +"to." +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid ":py:obj:`read_json `\\ \\(json\\_path\\)" +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid "" +":py:obj:`read_geojson `\\ " +"\\(geojson\\_path\\[\\, name\\_field\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid "" +":py:obj:`show_geojson_fields `\\ " +"\\(geojson\\_path\\)" +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid "" +":py:obj:`dict2json `\\ \\(data\\_dict\\, " +"json\\_path\\[\\, indent\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid "" +":py:obj:`write_json `\\ \\(data\\_dict\\, " +"json\\_path\\[\\, indent\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/json.rst:29::1 +msgid "" +":py:obj:`save_json `\\ \\(data\\_dict\\, " +"json\\_path\\[\\, indent\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:2 ../../python_api/roi.rst:18 +msgid "easyidp.roi.ROI" +msgstr "" + +#: ../../python_api/roi.rst:14 easyidp.roi.ROI:1 of +msgid "" +"A Region of Interest (ROI) object, can be either 2D or 3D, often read " +"from shp file." +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.__init__:1 of +msgid "The method to initialize the ROI class" +msgstr "" + +#: easyidp.roi.ROI.__init__:3 of +msgid "the path to roi file, often is shp file path, by default None" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid ":py:obj:`__init__ `\\ \\(\\[target\\_path\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`back2raw `\\ \\(recons\\, " +"\\*\\*kwargs\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid ":py:obj:`change_crs `\\ \\(target\\_crs\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.change_crs:1 of +msgid "Change the geo coordinates of roi to another crs." +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`crop `\\ \\(target\\[\\, " +"save\\_folder\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`get_z_from_dsm `\\ \\(dsm\\[\\, " +"mode\\, kernel\\, buffer\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.get_z_from_dsm:1 of +msgid "Get the z values (heights) from DSM for 2D polygon" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`get_z_from_pcd `\\ \\(pcd\\[\\, " +"mode\\, kernel\\, buffer\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.get_z_from_pcd:1 of +msgid "Get the z values (heights) from Point cloud for 2D polygon" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid ":py:obj:`is_geo `\\ \\(\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.is_geo:1 of +msgid "Returns True if the ROI is geo coordinate." +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`open `\\ \\(target\\_path\\, " +"\\*\\*kwargs\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.open:1 of +msgid "" +"An advanced wrapper to open ROI without dealing with file format, current" +" support shapefile.shp and labelme.json" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`read_labelme_json `\\ " +"\\(json\\_path\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.read_labelme_json:1 of +msgid "read roi from labelme marked json file" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`read_shp `\\ \\(shp\\_path\\[\\, " +"shp\\_proj\\, name\\_field\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.read_shp:1 of +msgid "read ROI from shp file" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +msgid "" +":py:obj:`read_geojson `\\ " +"\\(geojson\\_path\\[\\, name\\_field\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/manualdoc/easyidp.roi.ROI.rst:27::1 +#: easyidp.roi.ROI.read_geojson:1 of +msgid "read ROI from geojson file" +msgstr "" + +#: easyidp.roi.ROI.back2raw:1::1 of +msgid ":py:obj:`crs `\\" +msgstr "" + +#: ../../docstring easyidp.roi.ROI.back2raw:1::1 +#: easyidp.roi.ROI.crs:1 of +msgid "the CRS that current ROI used." +msgstr "" + +#: easyidp.roi.ROI.back2raw:1::1 of +msgid ":py:obj:`source `\\" +msgstr "" + +#: ../../docstring easyidp.roi.ROI.back2raw:1::1 +#: easyidp.roi.ROI.source:1 of +msgid "the source file path of current ROI." +msgstr "" + +#: easyidp.roi.ROI.back2raw:7 of +msgid "" +"| Whether do distortion correction, by default True (back to raw image " +"with lens distortion); | If back to software corrected images without len" +" distortion, set it to False. | (Pix4D support do this operation, seems " +"metashape not supported yet.)" +msgstr "" + +#: easyidp.roi.ROI.back2raw of +msgid "" +"Whether do distortion correction, by default True (back to raw image with" +" lens distortion);" +msgstr "" + +#: easyidp.roi.ROI.back2raw of +msgid "" +"If back to software corrected images without len distortion, set it to " +"False." +msgstr "" + +#: easyidp.roi.ROI.back2raw of +msgid "(Pix4D support do this operation, seems metashape not supported yet.)" +msgstr "" + +#: easyidp.roi.ROI.back2raw:20 of +msgid "" +"**out_dict** -- The 2-layer dictionary, the first layer is the roi id, " +"the second layer is the image names contains each roi ( " +"``out_dict['roi_id']['image_name']`` ) .. code-block:: python >>> " +"out_dict = roi.back2raw(...) # find all available images with " +"specified roi (plot), e.g. roi named 'N1W1': >>> one_roi_dict = " +"out_dict['N1W1'] # roi id {'IMG_3457': ..., 'IMG_3458': ..., ...}" +" # find the sepecific roi on specific image, e.g. roi named 'N1W1' on" +" image 'IMG_3457': >>> one_roi_one_img_coord = " +"out_dict[\"N1W1']['IMG_3457'] array([[ 43.9388228 , 1247.0474214 ]," +" [ 69.04076173, 972.90860296], [ 353.26968458, " +"993.31308291], [ 328.12327606, 1267.41006845], [ " +"43.9388228 , 1247.0474214 ]]) .. caution:: It is recommended to use " +"dict.items() for iteration. .. code-block:: python for " +"roi_id, img_dict in out_dict.items(): # roi_id = 'N1W1'" +" # img_dict = out_dict[roi_id] for img_name, " +"coords in img_dict.items(): # img_name = \"IMG_3457\"" +" # coords = out_dict[roi_id][img_name] " +"print(coords) Not recommended to use in this way: .. code-" +"block:: python for roi_id in out_dict.keys() " +"img_dict = out_dict[roi_id] for img_name in img_dict.keys():" +" coords = out_dict[roi_id][img_name] " +"print(coords)" +msgstr "" + +#: easyidp.roi.ROI.back2raw:20 of +msgid "" +"**out_dict** -- The 2-layer dictionary, the first layer is the roi id, " +"the second layer is the image names contains each roi ( " +"``out_dict['roi_id']['image_name']`` )" +msgstr "" + +#: easyidp.roi.ROI.back2raw:37 of +msgid "It is recommended to use dict.items() for iteration." +msgstr "" + +#: easyidp.roi.ROI.back2raw:49 of +msgid "Not recommended to use in this way:" +msgstr "" + +#: easyidp.roi.ROI.back2raw:77 of +msgid "Then do the backward calculation" +msgstr "" + +#: easyidp.roi.ROI.back2raw:108 of +msgid ":obj:`easyidp.pix4d.back2raw`, :obj:`easyidp.metashape.back2raw`" +msgstr "" + +#: easyidp.roi.ROI.change_crs:3 of +msgid "the CRS want convert to." +msgstr "" + +#: easyidp.roi.ROI.change_crs:13 of +msgid "Read roi with lon and lat CRS (WGS84)" +msgstr "" + +#: easyidp.roi.ROI.change_crs:32 of +msgid "Check the roi coordinates" +msgstr "" + +#: easyidp.roi.ROI.change_crs:43 of +msgid "Read a geotiff with different CRS (UTM 54N)" +msgstr "" + +#: easyidp.roi.ROI.change_crs:65 of +msgid "Change the roi crs (coordiante) from WGS84 to UTM 54N" +msgstr "" + +#: easyidp.roi.ROI.change_crs:86 of +msgid "Check the converted coordiante values" +msgstr "" + +#: easyidp.roi.ROI.crop:3 easyidp.roi.ROI.get_z_from_dsm:3 of +msgid "the path of dsm, or the GeoTiff object from idp.GeoTiff()" +msgstr "" + +#: easyidp.roi.ROI.crop:26 of +msgid "Then crop the given DOM, DSM and PointCloud:" +msgstr "" + +#: easyidp.roi.ROI.crop:64 of +msgid "" +"Or you can specify the ``save_folder`` parameter to automatically save " +"the cropped results" +msgstr "" + +#: easyidp.roi.ROI.crop:70 of +msgid ":func:`easyidp.GeoTiff.crop_rois `" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:5 of +msgid "" +"the mode to calculate z values, by default \"face\". - ``point``: get " +"height on each vertex, result in different values for each vertex - " +"``face``: get height on polygon face, result in the same value for each " +"vertex" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:5 of +msgid "the mode to calculate z values, by default \"face\"." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:7 of +msgid "" +"``point``: get height on each vertex, result in different values for each" +" vertex" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:8 of +msgid "" +"``face``: get height on polygon face, result in the same value for each " +"vertex" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:10 of +msgid "" +"The math kernel to calculate the z value, by default 'mean' - ``mean``: " +"the mean value inside polygon - ``min``: the minimum value inside polygon" +" - ``max``: the maximum value inside polygon - ``pmin5``: 5th *percentile" +" mean* inside polygon - ``pmin10``: 10th *percentile mean* inside polygon" +" - ``pmax5``: 95th *percentile mean* inside polygon - ``pmax10``: 90th " +"*percentile mean* inside polygon .. note:: percentile mean: the " +"mean value of all pixels over/under xth percentile threshold .. " +"image:: ../../_static/images/python_api/percentile_mean.png :alt:" +" percentile_mean.png' :scale: 35" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:10 of +msgid "The math kernel to calculate the z value, by default 'mean'" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:12 of +msgid "``mean``: the mean value inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:13 of +msgid "``min``: the minimum value inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:14 of +msgid "``max``: the maximum value inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:15 of +msgid "``pmin5``: 5th *percentile mean* inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:16 of +msgid "``pmin10``: 10th *percentile mean* inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:17 of +msgid "``pmax5``: 95th *percentile mean* inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:18 of +msgid "``pmax10``: 90th *percentile mean* inside polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:22 of +msgid "" +"percentile mean: the mean value of all pixels over/under xth percentile " +"threshold" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm of +msgid "percentile_mean.png'" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:28 of +msgid "" +"| the buffer of ROI, by default 0 (no buffer), - ``0``: not using buffer" +" - ``-1``: ignore given polygon, using the full dsm to calculate the " +"height - ``float``: buffer distance, the unit of buffer follows the DSM " +"coordinates, either pixel or meter. .. note:: If ``mode=\"point\"``" +" , will generate a round buffer polygon first, then extract the z-value " +"by this region, but the return will only be a single point. If " +"``mode=\"face\"``, will buffer the polygon and then calculate the height " +"inside the buffered polygon .. image:: " +"../../_static/images/python_api/roi_crop_mode.png :alt: " +"roi_crop_mode.png' :scale: 30" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm of +msgid "the buffer of ROI, by default 0 (no buffer)," +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:30 of +msgid "``0``: not using buffer" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:31 of +msgid "``-1``: ignore given polygon, using the full dsm to calculate the height" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:32 of +msgid "" +"``float``: buffer distance, the unit of buffer follows the DSM " +"coordinates, either pixel or meter." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:36 of +msgid "" +"If ``mode=\"point\"`` , will generate a round buffer polygon first, then " +"extract the z-value by this region, but the return will only be a single " +"point." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:38 of +msgid "" +"If ``mode=\"face\"``, will buffer the polygon and then calculate the " +"height inside the buffered polygon" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm of +msgid "roi_crop_mode.png'" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:44 of +msgid "" +"When the crs is not the save with DSM crs, where change the ROI crs to " +"fit DSM. - ``False`` (default): change ROI's CRS; - ``True``: not change" +" ROI's CRS, only attach the z value to current coordinate." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:44 of +msgid "" +"When the crs is not the save with DSM crs, where change the ROI crs to " +"fit DSM." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:46 of +msgid "``False`` (default): change ROI's CRS;" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:47 of +msgid "" +"``True``: not change ROI's CRS, only attach the z value to current " +"coordinate." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:65 of +msgid "The ROI and DSM, did not share the same CRS." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:67 of +msgid "The ROI is in longitude-latitude coordinate system, unit is degree." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:96 of +msgid "While the DSM (and DOM) are in UTM zone 54N, unit is meter." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:108 of +msgid "Different mode examples" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:111 of +msgid "The point mode, each point has its unique z value." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:139 of +msgid "The face mode, all points of one ROI share the same z value." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:167 of +msgid "Setting buffer" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:170 of +msgid "" +"You can using buffer to calculate z values from a larger area. This will " +"decrease the effects of some extreme noise points on DSM. Especially for " +"the point mode, which is more sensitive to such noise." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:174 of +msgid "" +"The value here share the same unit as DSM, if your DSM in lon-lat " +"coordinate (e.g. WGS84, EPSG:4326), ``buffer=1.0`` will result in 1.0 " +"degree in longitude and latitude, this is a very large area!" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:201 of +msgid "keep_crs option" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:204 of +msgid "" +"If not keep CRS, the ROI x and y values will also change to the same " +"coordinate with DSM." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:206 of +msgid "If do not want the value change, please setting ``keep_crs=True``" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_dsm:235 of +msgid "" +":func:`easyidp.GeoTiff.polygon_math " +"`" +msgstr "" + +#: easyidp.roi.ROI.get_z_from_pcd:3 of +msgid "This function has not been implemented." +msgstr "" + +#: easyidp.roi.ROI.get_z_from_pcd:5 of +msgid ":obj:`get_z_from_dsm`" +msgstr "" + +#: easyidp.roi.ROI.open:3 of +msgid "the path to roi files, current support shapefile.shp and labelme.json" +msgstr "" + +#: easyidp.roi.ROI.open:8 of +msgid "Initialize an empty object:" +msgstr "" + +#: easyidp.roi.ROI.open:17 easyidp.roi.ROI.read_geojson:19 +#: easyidp.roi.ROI.read_shp:25 of +msgid "Then you can open a ROI by:" +msgstr "" + +#: easyidp.roi.ROI.open:25 of +msgid "Or using this short function:" +msgstr "" + +#: easyidp.roi.ROI.open:35 of +msgid "" +"You can also pass several control parameters in this function, please " +"refer to :func:`read_shp` and :func:`read_labelme_json` for more " +"information" +msgstr "" + +#: easyidp.roi.ROI.read_geojson:56 of +msgid "" +"For more details of these parameters, please refer to " +":func:`easyidp.jsonfile.read_geojson`" +msgstr "" + +#: easyidp.roi.ROI.read_labelme_json:3 of +msgid "the path to labelme json file." +msgstr "" + +#: easyidp.roi.ROI.read_shp:5 of +msgid "" +"| by default None, will read automatically from prj file with the same " +"name of shp filename, | or give manually by ``read_shp(..., " +"shp_proj=pyproj.CRS.from_epsg(4326), ...)`` or | ``read_shp(..., " +"shp_proj=r'path/to/{shp_name}.prj', ...)``" +msgstr "" + +#: easyidp.roi.ROI.read_shp of +msgid "" +"by default None, will read automatically from prj file with the same name" +" of shp filename," +msgstr "" + +#: easyidp.roi.ROI.read_shp of +msgid "" +"or give manually by ``read_shp(..., shp_proj=pyproj.CRS.from_epsg(4326), " +"...)`` or" +msgstr "" + +#: easyidp.roi.ROI.read_shp of +msgid "``read_shp(..., shp_proj=r'path/to/{shp_name}.prj', ...)``" +msgstr "" + +#: easyidp.roi.ROI.read_shp:62 of +msgid "" +"For more details of these parameters, please refer to " +":func:`easyidp.shp.read_shp`" +msgstr "" + +#: easyidp.roi.ROI.read_shp:64 of +msgid ":obj:`easyidp.shp.read_shp`" +msgstr "" + +#: ../../python_api/metashape.rst:3 +msgid "• Metashape" +msgstr "" + +#: ../../python_api/metashape.rst:11 +msgid "" +"A summary of class ``easyidp.metashape.Metashape``, can be simple " +"accessed by ``easyidp.Metashape``" +msgstr "" + +#: ../../python_api/metashape.rst:18::1 +msgid "" +":py:obj:`Metashape `\\ " +"\\(\\[project\\_path\\, chunk\\_id\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/metashape.rst:22 +msgid "" +"This module (``easyidp.metashape``) also contains the following standard-" +"alone functions for preocessing Metashape projects directly." +msgstr "" + +#: ../../python_api/metashape.rst:27 +msgid "" +"The :class:`easyidp.Metashape ` class is an " +"advanced wrapper around the following functions, which is generally " +"sufficient for most simple application cases, please don't use the " +"following functions unless you really need them." +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +msgid "" +":py:obj:`read_project_zip `\\ " +"\\(project\\_folder\\, project\\_name\\)" +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +msgid "" +":py:obj:`read_chunk_zip `\\ " +"\\(project\\_folder\\, project\\_name\\, ...\\)" +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +msgid "" +":py:obj:`apply_transform_matrix " +"`\\ \\(points\\_xyz\\, " +"matrix\\)" +msgstr "" + +#: ../../python_api/metashape.rst:34::1 +msgid "Transforms a point or points in homogeneous coordinates." +msgstr "" + +#: ../../python_api/pix4d.rst:3 +msgid "• Pix4D" +msgstr "" + +#: ../../python_api/pix4d.rst:10 +msgid "" +"A summary of class ``easyidp.pix4d.Pix4D``, can be simple accessed by " +"``easyidp.Pix4D``" +msgstr "" + +#: ../../python_api/pix4d.rst:17::1 +msgid "" +":py:obj:`Pix4D `\\ \\(\\[project\\_path\\, " +"raw\\_img\\_folder\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:21 +msgid "" +"This module (``easyidp.pix4d``) also contains the following standard-" +"alone functions for preocessing Pix4D projects directly." +msgstr "" + +#: ../../python_api/pix4d.rst:25 +msgid "" +"The :class:`easyidp.Pix4D ` class is an advanced " +"wrapper around the following functions, which is generally sufficient for" +" most simple application cases, please don't use the following functions " +"unless you really need them." +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid "" +":py:obj:`parse_p4d_project `\\ " +"\\(project\\_path\\[\\, param\\_folder\\]\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid "" +":py:obj:`parse_p4d_param_folder `\\" +" \\(param\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid ":py:obj:`read_xyz `\\ \\(xyz\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid ":py:obj:`read_pmat `\\ \\(pmat\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid ":py:obj:`read_cicp `\\ \\(cicp\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid ":py:obj:`read_ccp `\\ \\(ccp\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid "" +":py:obj:`read_campos_geo `\\ " +"\\(campos\\_path\\)" +msgstr "" + +#: ../../python_api/pix4d.rst:37::1 +msgid ":py:obj:`read_cam_ssk `\\ \\(ssk\\_path\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:3 +msgid "Point Cloud" +msgstr "点群" + +#: ../../python_api/pointcloud.rst:10 +msgid "" +"A summary of class ``easyidp.pointcloud.PointCloud``, can be simple " +"accessed by ``easyidp.PointCloud``" +msgstr "" + +#: ../../python_api/pointcloud.rst:17::1 +msgid "" +":py:obj:`PointCloud `\\ " +"\\(\\[pcd\\_path\\, offset\\]\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:21 +msgid "" +"This module (``easyidp.pointcloud``) also contains the following " +"standard-alone functions for preocessing PointCloud file (ply, las, laz) " +"directly." +msgstr "" + +#: ../../python_api/pointcloud.rst:25 +msgid "" +"The :class:`easyidp.PointCloud ` class is " +"an advanced wrapper around the following functions, which is generally " +"sufficient for most simple application cases, please don't use the " +"following functions unless you really need to." +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid ":py:obj:`read_las `\\ \\(las\\_path\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid ":py:obj:`read_laz `\\ \\(laz\\_path\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid ":py:obj:`read_ply `\\ \\(ply\\_path\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid "" +":py:obj:`write_las `\\ \\(las\\_path\\, " +"points\\, colors\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid "" +":py:obj:`write_laz `\\ \\(laz\\_path\\, " +"points\\, colors\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/pointcloud.rst:36::1 +msgid "" +":py:obj:`write_ply `\\ \\(ply\\_path\\, " +"points\\, colors\\[\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:3 +msgid "reconstruct" +msgstr "" + +#: ../../python_api/reconstruct.rst:9 +msgid "" +"This is the base module for 3D reconstruction project, all the following " +"classes and functions have already been implemented into the submodule " +":class:`easyidp.Pix4D ` and " +":class:`easyidp.Metashape `. They are " +"generally sufficient for most application cases, it is not recommended to" +" create the following classes or use the following functions directly " +"unless you really need to." +msgstr "" + +#: ../../python_api/reconstruct.rst:15 +msgid "A summary of base class in the module ``easyidp.reconstruct``." +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid ":py:obj:`Recons `\\ \\(\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid "The base class for reconstruction project." +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid ":py:obj:`Sensor `\\ \\(\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid ":py:obj:`Photo `\\ \\(\\[sensor\\]\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid "" +":py:obj:`Calibration `\\ " +"\\(\\[sensor\\]\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:25::1 +msgid ":py:obj:`ChunkTransform `\\ \\(\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:26 +msgid "You can definately access these base class directly by:" +msgstr "" + +#: ../../python_api/reconstruct.rst:40 +msgid "But it is more often used in the Pix4D or Metashape project in this way:" +msgstr "" + +#: ../../python_api/reconstruct.rst:44 ../../python_api/reconstruct.rst:73 +msgid "Load the example data:" +msgstr "" + +#: ../../python_api/reconstruct.rst:50 +msgid "And read the demo pix4d project:" +msgstr "" + +#: ../../python_api/reconstruct.rst:59 ../../python_api/reconstruct.rst:85 +msgid "Then access the classes:" +msgstr "" + +#: ../../python_api/reconstruct.rst:79 +msgid "And read the demo metashape project:" +msgstr "" + +#: ../../python_api/reconstruct.rst:110::1 +msgid "" +":py:obj:`sort_img_by_distance " +"`\\ \\(recons\\, " +"img\\_dict\\_all\\, roi\\)" +msgstr "" + +#: ../../python_api/reconstruct.rst:110::1 +msgid "" +":py:obj:`save_back2raw_json_and_png " +"`\\ \\(recons\\, ...\\)" +msgstr "" + +#: ../../python_api/roi.rst:3 +msgid "ROI" +msgstr "" + +#: ../../python_api/roi.rst:10 +msgid "" +"A summary of class ``easyidp.roi.ROI``, can be simple accessed by " +"``easyidp.ROI``" +msgstr "" + +#: ../../python_api/roi.rst:14 +msgid ":doc:`easyidp.ROI `" +msgstr "" + +#: ../../python_api/roi.rst:28 +msgid "" +"The :class:`easyidp.ROI ` class is an advanced wrapper " +"around the following functions, which is generally sufficient for most " +"simple application cases, please don't use the following functions unless" +" you really need to." +msgstr "" + +#: ../../python_api/roi.rst:33::1 +msgid ":py:obj:`read_cc_txt `\\ \\(txt\\_path\\)" +msgstr "" + +#: ../../python_api/shp.rst:5 +msgid "• shapefile" +msgstr "" + +#: ../../python_api/shp.rst:14 +msgid "" +"The :mod:`easyidp.ROI ` class is an advanced wrapper " +"around the following functions, which is generally sufficient for most " +"simple application cases, please don't use the following functions unless" +" you really need to." +msgstr "" + +#: ../../python_api/shp.rst:21::1 +msgid ":py:obj:`read_proj `\\ \\(prj\\_path\\)" +msgstr "" + +#: ../../python_api/shp.rst:21::1 +msgid "" +":py:obj:`show_shp_fields `\\ " +"\\(shp\\_path\\[\\, encoding\\]\\)" +msgstr "" + +#: ../../python_api/shp.rst:21::1 +msgid "" +":py:obj:`read_shp `\\ \\(shp\\_path\\[\\, " +"shp\\_proj\\, name\\_field\\, ...\\]\\)" +msgstr "" + +#: ../../python_api/visualize.rst:3 +msgid "Visualize" +msgstr "" + +#: ../../python_api/visualize.rst:7 +msgid "The functions for easy result preview and visualization." +msgstr "" + +#: ../../python_api/visualize.rst:17::1 +msgid "" +":py:obj:`draw_polygon_on_img `\\ " +"\\(img\\_name\\, img\\_path\\, ...\\)" +msgstr "" + +#: ../../python_api/visualize.rst:17::1 +msgid "" +":py:obj:`draw_backward_one_roi " +"`\\ \\(proj\\, " +"result\\_dict\\[\\, ...\\]\\)" +msgstr "" + +#~ msgid "" +#~ "Please note: gis coordinate, horizontal " +#~ "is x axis, vertical is y axis, " +#~ "origin at left upper." +#~ msgstr "" + +#~ msgid "" +#~ "For users in China mainland, please " +#~ "either find a way to access google" +#~ " drive, or download from `CowTransfer " +#~ "Link `_" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.data.user_data_dir " +#~ "`\\ \\(\\[file\\_name\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.data.show_data_dir " +#~ "`\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.data.url_checker `\\" +#~ " \\(url\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.GeoTiff.read_geotiff " +#~ "`\\ \\(tif\\_path\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`easyidp.GeoTiff.has_data `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.GeoTiff.point_query " +#~ "`\\ \\(points\\_hv\\[\\, " +#~ "is\\_geo\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.GeoTiff.crop_polygon " +#~ "`\\ \\(polygon\\_hv\\[\\, " +#~ "...\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.GeoTiff.save_geotiff " +#~ "`\\ \\(imarray\\, ...\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.GeoTiff.math_polygon " +#~ "`\\ \\(polygon\\_hv\\[\\, " +#~ "...\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.geotiff.get_header " +#~ "`\\ \\(tif\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.geotiff.get_imarray " +#~ "`\\ \\(tif\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.geotiff.geo2pixel " +#~ "`\\ \\(points\\_hv\\, header\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.geotiff.pixel2geo " +#~ "`\\ \\(points\\_hv\\, header\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.geotiff.tifffile_crop " +#~ "`\\ \\(page\\, top\\, " +#~ "...\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":doc:`Point cloud Module <./pointcloud>` : " +#~ "read, write, check and crop opertation." +#~ msgstr "" + +#~ msgid "" +#~ ":doc:`GeoTiff Module <./geotiff>` : read, " +#~ "write, crop, and statistics opertation." +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.jsonfile.read_json " +#~ "`\\ \\(json\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.jsonfile.save_json " +#~ "`\\ \\(data\\_dict\\, " +#~ "json\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.jsonfile.write_json " +#~ "`\\ \\(data\\_dict\\, " +#~ "json\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.jsonfile.dict2json " +#~ "`\\ \\(data\\_dict\\, " +#~ "json\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.PointCloud.has_colors " +#~ "`\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.PointCloud.has_points " +#~ "`\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.PointCloud.has_normals " +#~ "`\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.PointCloud.crop_point_cloud " +#~ "`\\ \\(polygon\\_xy\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.pointcloud.write_ply " +#~ "`\\ \\(points\\, colors\\," +#~ " ...\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.pointcloud.read_las " +#~ "`\\ \\(las\\_path\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`easyidp.ROI.is_geo `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.ROI.get_z_from_dsm " +#~ "`\\ \\(dsm\\[\\, mode\\, " +#~ "...\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.ROI.open `\\ " +#~ "\\(target\\_path\\, \\*\\*kwargs\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`easyidp.ROI.copy `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.roi.read_cc_txt `\\" +#~ " \\(txt\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.shp.read_proj `\\ " +#~ "\\(prj\\_path\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.shp.show_shp_fields " +#~ "`\\ \\(shp\\_path\\[\\, " +#~ "...\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.shp.read_shp `\\ " +#~ "\\(shp\\_path\\[\\, shp\\_proj\\, ...\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`easyidp.shp.convert_proj `\\" +#~ " \\(shp\\_dict\\, ...\\)" +#~ msgstr "" + +#~ msgid "" +#~ "\"pillow\" or \"shapely\" pillow is " +#~ "slight different than skimage.polygon2mask " +#~ "shapely is almost the same with " +#~ "skiamge.polygon2mask, but effiency is very " +#~ "slow, not recommended" +#~ msgstr "" + +#~ msgid "提示" +#~ msgstr "" + +#~ msgid "实际案例" +#~ msgstr "" + +#~ msgid "the image data, shape = (height,width)" +#~ msgstr "" + +#~ msgid "" +#~ "pixel position of boundary point, " +#~ "(horizontal, vertical) which reverted the " +#~ "imarray axis 0 to 1" +#~ msgstr "" + +#~ msgid "" +#~ "specify exact value outside the polgyon," +#~ " default 0 But for some DSM " +#~ "geotiff, it can be -10000.0" +#~ msgstr "" + +#~ msgid "" +#~ "convert vector polygon to raster masks," +#~ " aim to avoid using skimage package" +#~ msgstr "" + +#~ msgid "" +#~ "(horizontal, vertical) = (width, height) " +#~ "!!! it is reversed with numpy " +#~ "index order !!!" +#~ msgstr "" + +#~ msgid "" +#~ "(horizontal, vertical) = (width, height) " +#~ "!!! it is reversed with numpy " +#~ "index order !!! If dtype is int" +#~ " -> view coord as pixel index " +#~ "number Will + 0.5 to coords " +#~ "(pixel center) as judge point if " +#~ "dtype is float -> view coords as" +#~ " real coord (0,0) will be the " +#~ "left upper corner of pixel square" +#~ msgstr "" + +#~ msgid "" +#~ "\"skimage\" or \"pillow\" or \"shapely\" " +#~ "skimage.draw.polygon2mask, the default method " +#~ "pillow is slight different than " +#~ "skimage.draw.polygon2mask, deprecated shapely is " +#~ "almost the same with " +#~ "skiamge.draw.polygon2mask, but effiency is " +#~ "very slow, not recommended" +#~ msgstr "" + +#~ msgid "" +#~ "This code is inspired from here: " +#~ "https://stackoverflow.com/questions/62280398/checking-if-a" +#~ "-point-is-contained-in-a-polygon-multipolygon-" +#~ "for-many-points" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`create_grid `\\" +#~ " \\(w\\, h\\[\\, extend\\, grid\\_buffer\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`crop `\\ " +#~ "\\(roi\\[\\, is\\_geo\\, save\\_folder\\]\\)" +#~ msgstr "" + +#~ msgid "crop a given polygon from geotiff" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`math_polygon `\\" +#~ " \\(polygon\\_hv\\[\\, is\\_geo\\, kernel\\]\\)" +#~ msgstr "" + +#~ msgid "get the pixel value of given point(s)" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:3 -msgid "Point Cloud" -msgstr "点群" +#~ msgid ":py:obj:`save `\\ \\(\\)" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:10 -msgid "A summary of class ``PointCloud``" -msgstr "" +#~ msgid "" +#~ ":py:obj:`save_geotiff `\\" +#~ " \\(imarray\\, left\\_top\\_corner\\, save\\_path\\)" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:17::1 -msgid "" -":py:obj:`PointCloud `\\ " -"\\(\\[pcd\\_path\\, offset\\]\\)" -msgstr "" +#~ msgid "" +#~ "PS: subfunction ``tifffile_crop`` has the " +#~ "order ``(top, left, h, w)`` which " +#~ "is too heavy to change it." +#~ msgstr "" -#: ../../python_api/pointcloud.rst:17::1 -msgid "PointCloud class." -msgstr "" +#~ msgid "Option details for ``kernal`` parameter:" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:23 -msgid "" -"The ``easyidp.PointCloud`` class is an advanced wrapper around the " -"following functions, which is generally sufficient for most simple " -"application cases, please don't use the following functions unless you " -"really need to." -msgstr "" +#~ msgid "the pixel position of image top left cornder, the order is (left, top)" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:29::1 -msgid "" -":py:obj:`write_ply `\\ \\(points\\, " -"colors\\, ply\\_path\\[\\, ...\\]\\)" -msgstr "" +#~ msgid "" +#~ "convert point cloud xyz coordinate to" +#~ " geotiff pixel coordinate (horizontal, " +#~ "vertical)" +#~ msgstr "" -#: ../../python_api/pointcloud.rst:29::1 -msgid ":py:obj:`read_las `\\ \\(las\\_path\\)" -msgstr "" +#~ msgid "Read full map data as numpy array (time and RAM costy, not recommended)" +#~ msgstr "" -#: ../../python_api/roi.rst:3 -msgid "ROI" -msgstr "" +#~ msgid "" +#~ "convert geotiff pixel coordinate (horizontal," +#~ " vertical) to point cloud xyz " +#~ "coordinate (x, y, z)" +#~ msgstr "" -#: ../../python_api/roi.rst:10 -msgid "A summary of class ``ROI``" -msgstr "" +#~ msgid ":obj:`easyidp.geotiff.get_header`" +#~ msgstr "" -#: ../../python_api/roi.rst:17::1 -msgid ":py:obj:`ROI `\\ \\(\\[target\\_path\\]\\)" -msgstr "" +#~ msgid "Extract a crop from a TIFF image file directory (IFD)." +#~ msgstr "" -#: ../../python_api/roi.rst:28::1 -msgid ":py:obj:`read_cc_txt `\\ \\(txt\\_path\\)" -msgstr "" +#~ msgid "" +#~ "Only the tiles englobing the crop " +#~ "area are loaded and not the whole" +#~ " page. This is usefull for large " +#~ "Whole slide images that can't fit " +#~ "int RAM." +#~ msgstr "" -#: ../../python_api/shp.rst:5 -msgid "• shapefile" -msgstr "" +#~ msgid "It is hard to know the exactly order immediately." +#~ msgstr "" -#: ../../python_api/shp.rst:22::1 -msgid ":py:obj:`read_proj `\\ \\(prj\\_path\\)" -msgstr "" +#~ msgid ":class:`easyidp.Geotiff.crop_rectange`" +#~ msgstr "" -#: ../../python_api/shp.rst:22::1 -msgid "" -":py:obj:`show_shp_fields `\\ " -"\\(shp\\_path\\[\\, encoding\\]\\)" -msgstr "" +#~ msgid "Convert dict to the same structure json file" +#~ msgstr "" -#: ../../python_api/shp.rst:22::1 -msgid "" -":py:obj:`read_shp `\\ \\(shp\\_path\\[\\, " -"shp\\_proj\\, name\\_field\\, ...\\]\\)" -msgstr "" +#~ msgid "**indient example**" +#~ msgstr "" -#: ../../python_api/shp.rst:22::1 -msgid "" -":py:obj:`convert_proj `\\ \\(shp\\_dict\\, " -"origin\\_proj\\, target\\_proj\\)" -msgstr "" +#~ msgid "Save dict to the same structure json file" +#~ msgstr "" -#~ msgid "" -#~ "Please note: gis coordinate, horizontal " -#~ "is x axis, vertical is y axis, " -#~ "origin at left upper." +#~ msgid ":obj:`easyidp.jsonfile.dict2json`, :obj:`easyidp.jsonfile.save_json`" #~ msgstr "" #~ msgid "" -#~ "For users in China mainland, please " -#~ "either find a way to access google" -#~ " drive, or download from `CowTransfer " -#~ "Link `_" +#~ "PointCloud class. A point cloud consists" +#~ " of point coordinates, and optionally " +#~ "point colors and point normals." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.data.user_data_dir " -#~ "`\\ \\(\\[file\\_name\\]\\)" +#~ ":py:obj:`crop `\\ " +#~ "\\(roi\\[\\, save\\_folder\\]\\)" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.data.show_data_dir " -#~ "`\\ \\(\\)" +#~ "Crop several ROIs by given " +#~ "object with several polygons and polygon" +#~ " names" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.data.url_checker `\\" -#~ " \\(url\\)" +#~ ":py:obj:`set_offset_value " +#~ "`\\ \\(o\\[\\," +#~ " show\\_warn\\]\\)" #~ msgstr "" -#~ msgid "" -#~ ":py:obj:`easyidp.GeoTiff.read_geotiff " -#~ "`\\ \\(tif\\_path\\)" +#~ msgid "The dictionary with key=id and value=" #~ msgstr "" -#~ msgid ":py:obj:`easyidp.GeoTiff.has_data `\\ \\(\\)" +#~ msgid "The cropped point cloud" #~ msgstr "" -#~ msgid "" -#~ ":py:obj:`easyidp.GeoTiff.point_query " -#~ "`\\ \\(points\\_hv\\[\\, " -#~ "is\\_geo\\]\\)" +#~ msgid "Read the las file" #~ msgstr "" -#~ msgid "" -#~ ":py:obj:`easyidp.GeoTiff.crop_polygon " -#~ "`\\ \\(polygon\\_hv\\[\\, " -#~ "...\\]\\)" +#~ msgid "the output point cloud file, including ext." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.GeoTiff.save_geotiff " -#~ "`\\ \\(imarray\\, ...\\)" +#~ "Need to convert to structured arrays " +#~ "[1]_ then save the point cloud " +#~ "structure looks like this:" #~ msgstr "" -#~ msgid "" -#~ ":py:obj:`easyidp.GeoTiff.math_polygon " -#~ "`\\ \\(polygon\\_hv\\[\\, " -#~ "...\\]\\)" +#~ msgid "Summary APIs of each objects, often read from shp file." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.geotiff.get_header " -#~ "`\\ \\(tif\\_path\\)" +#~ ":py:obj:`back2raw `\\ " +#~ "\\(recons\\[\\, save\\_folder\\]\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`clear `\\ \\(\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`copy `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "make a deep copy of current file" +#~ msgstr "" + +#~ msgid ":py:obj:`fromkeys `\\ \\(\\[value\\]\\)" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.geotiff.get_imarray " -#~ "`\\ \\(tif\\_path\\)" +#~ "Create a new dictionary with keys " +#~ "from iterable and values set to " +#~ "value." +#~ msgstr "" + +#~ msgid ":py:obj:`get `\\ \\(key\\[\\, default\\]\\)" +#~ msgstr "" + +#~ msgid "Return the value for key if key is in the dictionary, else default." +#~ msgstr "" + +#~ msgid "get the z values (heights) from DSM for 2D polygon" +#~ msgstr "" + +#~ msgid ":py:obj:`items `\\ \\(\\)" +#~ msgstr "" + +#~ msgid ":py:obj:`keys `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "An advanced wrapper to open ROI without dealing with format" +#~ msgstr "" + +#~ msgid ":py:obj:`pop `\\ \\(k\\[\\,d\\]\\)" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.geotiff.geo2pixel " -#~ "`\\ \\(points\\_hv\\, header\\)" +#~ "If key is not found, d is " +#~ "returned if given, otherwise KeyError is" +#~ " raised" +#~ msgstr "" + +#~ msgid ":py:obj:`popitem `\\ \\(\\)" +#~ msgstr "" + +#~ msgid "Remove and return a (key, value) pair as a 2-tuple." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.geotiff.pixel2geo " -#~ "`\\ \\(points\\_hv\\, header\\)" +#~ ":py:obj:`setdefault `\\ " +#~ "\\(key\\[\\, default\\]\\)" +#~ msgstr "" + +#~ msgid "Insert key with a value of default if key is not in the dictionary." +#~ msgstr "" + +#~ msgid ":py:obj:`update `\\ \\(\\[E\\, \\]\\*\\*F\\)" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.geotiff.tifffile_crop " -#~ "`\\ \\(page\\, top\\, " -#~ "...\\)" +#~ "If E is present and has a " +#~ ".keys() method, then does: for k " +#~ "in E: D[k] = E[k] If E is" +#~ " present and lacks a .keys() method," +#~ " then does: for k, v in E: " +#~ "D[k] = v In either case, this " +#~ "is followed by: for k in F: " +#~ "D[k] = F[k]" +#~ msgstr "" + +#~ msgid ":py:obj:`values `\\ \\(\\)" #~ msgstr "" #~ msgid "" -#~ ":doc:`Point cloud Module <./pointcloud>` : " -#~ "read, write, check and crop opertation." +#~ "Whether do distortion correction, by " +#~ "default True (back to raw image " +#~ "with lens distortion); If back to " +#~ "software corrected images without len " +#~ "distortion, set it to False. (Pix4D " +#~ "support do this operation, seems " +#~ "metashape not supported yet.)" #~ msgstr "" #~ msgid "" -#~ ":doc:`GeoTiff Module <./geotiff>` : read, " -#~ "write, crop, and statistics opertation." +#~ "None: strickly in image area; 'x': " +#~ "only y (vertical) in image area, x" +#~ " can outside image; 'y': only x " +#~ "(horizontal) in image area, y can " +#~ "outside image." +#~ msgstr "" + +#~ msgid ":obj:`easyidp.GeoTiff.crop`" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.jsonfile.read_json " -#~ "`\\ \\(json\\_path\\)" +#~ "the mode to calculate z values, " +#~ "option in \"point\" and \"face\" " +#~ "**point**: get height on each vertex," +#~ " result in different values for each" +#~ " vertex **face**: get height on " +#~ "polygon face, result in the same " +#~ "value for each vertex" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.jsonfile.save_json " -#~ "`\\ \\(data\\_dict\\, " -#~ "json\\_path\\)" +#~ "The math kernal to calculate the z" +#~ " value. [\"mean\", \"min\", \"max\", " +#~ "\"pmin5\", \"pmin10\", \"pmax5\", \"pmax10\"], " +#~ "by default 'mean'" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.jsonfile.write_json " -#~ "`\\ \\(data\\_dict\\, " -#~ "json\\_path\\)" +#~ "the buffer of ROI, by default 0" +#~ " (no buffer), can be positive values" +#~ " or -1 (using all map), please " +#~ "check the Notes section for more " +#~ "details" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.jsonfile.dict2json " -#~ "`\\ \\(data\\_dict\\, " -#~ "json\\_path\\)" +#~ "When the crs is not the save " +#~ "with DSM crs, where change the ROI" +#~ " crs to fit DSM. **False** (default):" +#~ " change ROI's CRS; **True**: not " +#~ "change ROI's CRS, only attach the " +#~ "z value to current coordinate." +#~ msgstr "" + +#~ msgid "**Option details for** ``kernal`` **parameter**" +#~ msgstr "" + +#~ msgid "\"pmin5\": 5th *percentile mean* inside polygon" +#~ msgstr "" + +#~ msgid "\"pmin10\": 10th *percentile mean* inside polygon" +#~ msgstr "" + +#~ msgid "\"pmax5\": 95th *percentile mean* inside polygon" +#~ msgstr "" + +#~ msgid "\"pmax10\": 90th *percentile mean* inside polygon" +#~ msgstr "" + +#~ msgid "**Option details for** ``buffer`` **parameter**" +#~ msgstr "" + +#~ msgid "0: not using buffer" +#~ msgstr "" + +#~ msgid "-1: ignore given polygon, using the full dsm to calculate the height" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.PointCloud.has_colors " -#~ "`\\ \\(\\)" +#~ "float: buffer distance, the unit of " +#~ "buffer follows the ROI coordinates, " +#~ "either pixel or meter." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.PointCloud.has_points " -#~ "`\\ \\(\\)" +#~ "If mode is \"point\", will generate " +#~ "a round buffer polygon first, then " +#~ "extract the z-value by this region, " +#~ "but the return will only be a " +#~ "single point." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.PointCloud.has_normals " -#~ "`\\ \\(\\)" +#~ "If mode is \"face\", will buffer " +#~ "the polygon and then calculate the " +#~ "height inside the buffered polygon" +#~ msgstr "" + +#~ msgid "roi_crop_mode.png" +#~ msgstr "" + +#~ msgid "Combine" +#~ msgstr "" + +#~ msgid ":obj:`easyidp.GeoTiff.math_polygon`" +#~ msgstr "" + +#~ msgid "the path to roi files, current support \\*.shp and labelme.json" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.PointCloud.crop_point_cloud " -#~ "`\\ \\(polygon\\_xy\\)" +#~ "You can also pass several control " +#~ "parameters in this function, please " +#~ "refer see also for more information" +#~ msgstr "" + +#~ msgid ":obj:`read_shp`, :obj:`read_labelme_json`" +#~ msgstr "" + +#~ msgid "For details of this parameters, please refer to see also." +#~ msgstr "" + +#~ msgid "easyidp.shp.convert\\_proj" +#~ msgstr "" + +#~ msgid "Examples: [1] pyproj.CRS.from_epsg(4326) [2] r'path/to/{shp_name}.prj'," +#~ msgstr "" + +#~ msgid "**proj**" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.pointcloud.write_ply " -#~ "`\\ \\(points\\, colors\\," -#~ " ...\\)" +#~ "Read shp field data to pandas.DataFrame," +#~ " for further json metadata usage" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.pointcloud.read_las " -#~ "`\\ \\(las\\_path\\)" +#~ "This is a package for simple " +#~ "imarray operations without scikit-image. " +#~ "Mainly about creating binary masks from" +#~ " given polygon coordinates." #~ msgstr "" -#~ msgid ":py:obj:`easyidp.ROI.is_geo `\\ \\(\\)" +#~ msgid "It is a submodule for the ``GeoTiff`` class." +#~ msgstr "" + +#~ msgid "**Quick usage**" +#~ msgstr "" + +#~ msgid "All the dataset is in the following format:" +#~ msgstr "" + +#~ msgid "url_list" +#~ msgstr "" + +#~ msgid "The possible download urls" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.ROI.get_z_from_dsm " -#~ "`\\ \\(dsm\\[\\, mode\\, " -#~ "...\\]\\)" +#~ "For users in China mainland, please " +#~ "either find a way to access google" +#~ " drive, or download from `CowTransfer " +#~ "Link `_" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.ROI.open `\\ " -#~ "\\(target\\_path\\, \\*\\*kwargs\\)" +#~ "Save and extract all \\*.zip file " +#~ "to folder ``idp.data.show_data_dir()``." #~ msgstr "" -#~ msgid ":py:obj:`easyidp.ROI.copy `\\ \\(\\)" +#~ msgid "The data structure should like this:" #~ msgstr "" -#~ msgid "" -#~ ":py:obj:`easyidp.roi.read_cc_txt `\\" -#~ " \\(txt\\_path\\)" +#~ msgid "Here have the following dataset:" +#~ msgstr "" + +#~ msgid "Lotus" +#~ msgstr "" + +#~ msgid "A summary of class ``GeoTiff``" #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.shp.read_proj `\\ " -#~ "\\(prj\\_path\\)" +#~ "The ``easyidp.GeoTiff`` class is an " +#~ "advanced wrapper around the following " +#~ "functions, which is generally sufficient " +#~ "for most simple application cases, " +#~ "please don't use the following functions" +#~ " unless you really need to." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.shp.show_shp_fields " -#~ "`\\ \\(shp\\_path\\[\\, " -#~ "...\\]\\)" +#~ ":doc:`cvtools Submodule <./cvtools>` : " +#~ "processing ndarray images without install " +#~ "scikit-image." +#~ msgstr "" + +#~ msgid ":doc:`jsonfile Submodule <./json>`: read and write json file." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.shp.read_shp `\\ " -#~ "\\(shp\\_path\\[\\, shp\\_proj\\, ...\\]\\)" +#~ "The :class:`easyidp.Container` object, its " +#~ "child objects, and objects contains this" +#~ " object, like :class:`easyidp.roi.ROI` , " +#~ "``ProjectPool`` , ``Recons`` , ``Pix4D`` " +#~ ", ``Metashape``, can not be saved " +#~ "by pickle." +#~ msgstr "" + +#~ msgid "A summary of class ``PointCloud``" +#~ msgstr "" + +#~ msgid "PointCloud class." #~ msgstr "" #~ msgid "" -#~ ":py:obj:`easyidp.shp.convert_proj `\\" -#~ " \\(shp\\_dict\\, ...\\)" +#~ "The ``easyidp.PointCloud`` class is an " +#~ "advanced wrapper around the following " +#~ "functions, which is generally sufficient " +#~ "for most simple application cases, " +#~ "please don't use the following functions" +#~ " unless you really need to." #~ msgstr "" #~ msgid "" -#~ "\"pillow\" or \"shapely\" pillow is " -#~ "slight different than skimage.polygon2mask " -#~ "shapely is almost the same with " -#~ "skiamge.polygon2mask, but effiency is very " -#~ "slow, not recommended" +#~ ":py:obj:`write_ply `\\ " +#~ "\\(points\\, colors\\, ply\\_path\\[\\, ...\\]\\)" #~ msgstr "" -#~ msgid "提示" +#~ msgid "A summary of class ``ROI``" #~ msgstr "" -#~ msgid "实际案例" +#~ msgid ":py:obj:`ROI `\\ \\(\\[target\\_path\\]\\)" +#~ msgstr "" + +#~ msgid "" +#~ ":py:obj:`convert_proj `\\ " +#~ "\\(shp\\_dict\\, origin\\_proj\\, target\\_proj\\)" #~ msgstr ""