Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@
"source": [
"## Getting Started\n",
"\n",
"Reality mapping capability through ArcGIS API for Python requires ArcGIS Enterprise federated with a Reality Server license. See the [configuration instruction](https://doctopia.esri.com/builds/reality-server/main/en/deploy/configure-arcgis-reality.html) for setup details.\n",
"Reality mapping capability through ArcGIS API for Python requires ArcGIS Enterprise federated with a Reality Server license. See the [configuration instruction](https://doc.esri.com/en/arcgis-reality-server/latest/deploy/configure-arcgis-reality.html) for setup details.\n",
"\n",
"Once your environment is configured, import the required modules:\n",
"Once your environment is configured, import the required class and module:\n",
"\n",
"- `GIS`module: Manages GIS content, users, and groups\n",
"- [GIS](/python/latest/api-reference/arcgis.gis.toc.html#gis) class: Represents the organizational deployment and accesses classes to manage content, users, and groups\n",
"\n",
"- [`Realitymapping` module](https://developers.arcgis.com/python/latest/api-reference/arcgis.raster.realitymapping.html) : Automates reality mapping tasks in the server environment."
"- [arcgis.raster.realitymapping](/python/latest/api-reference/arcgis.raster.realitymapping.html) submodule provides the functionality to automate reality mapping tasks in the server environment. The reality mapping module is available with ArcGIS API for Python (version >= 2.4.2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"id": "410f3a79",
"metadata": {},
"outputs": [],
Expand All @@ -56,7 +56,9 @@
"id": "fd553a67",
"metadata": {},
"source": [
"Establish a connection to your ArcGIS Enterprise portal and verify that reality mapping is supported in your environment."
"Establish a connection to your ArcGIS Enterprise portal and verify that reality mapping is supported in your environment. \n",
"\n",
"> *note:* Change credentials to match your organization credentials."
]
},
{
Expand Down Expand Up @@ -84,7 +86,7 @@
"source": [
"## Step 1: Create a Project\n",
"\n",
"The first step is to create a reality mapping project using the [Project](https://developers.arcgis.com/python/latest/api-reference/arcgis.raster.realitymapping.html#arcgis.raster.realitymapping.Project) class of the reality mapping module. For this example, we are using nadir digital aerial data, so we set the `sensor_type` and `scenario_type` accordingly."
"The first step is to create a reality mapping project using the [Project](python/latest/api-reference/arcgis.raster.realitymapping.html#arcgis.raster.realitymapping.Project) class of the reality mapping module. For this example, we are using nadir digital aerial data, so we set the `sensor_type` and `scenario_type` accordingly."
]
},
{
Expand All @@ -94,7 +96,11 @@
"metadata": {},
"outputs": [],
"source": [
"project = realitymapping.Project(\"RMDigitalAerial2Dy\", sensor_type = \"AerialDigital\", scenario_type= \"AerialNadir\")\n",
"project = realitymapping.Project(\n",
" project= \"RMDigitalAerial2Dy\", \n",
" sensor_type = \"AerialDigital\", \n",
" scenario_type= \"AerialNadir\"\n",
")\n",
"project"
]
},
Expand Down Expand Up @@ -135,7 +141,7 @@
"source": [
"## Step 2: Create a Mission\n",
"\n",
"The next step is to create a mission which is a container for managing all related imagery and the resulting processed data products of a single data capture session. Mission creation involves creating an image collection for the source rasters. So we need to first define the type, properties and path of the source rasters using the [ImageSource](https://developers.arcgis.com/python/latest/api-reference/arcgis.raster.toc.html#imagesource) class."
"The next step is to create a mission which is a container for managing all related imagery and the resulting processed data products of a single data capture session. Mission creation involves creating an image collection for the source rasters. So we need to first define the type, properties and path of the source rasters using the [ImageSource](/python/latest/api-reference/arcgis.raster.toc.html#imagesource) class."
]
},
{
Expand All @@ -159,40 +165,15 @@
"id": "8f999152-8ede-4bfa-bca2-aa75eb096ea0",
"metadata": {},
"source": [
"Other parameters specific to the digital aerial raster type we just created can be defined, similar to the camera_info and dem. To see the possible attributes, use the attributes property of the [raster_type](https://developers.arcgis.com/python/latest/api-reference/arcgis.raster.toc.html#rastertype) instance."
"Other parameters specific to the digital aerial raster type we just created can be defined, similar to the camera_info and dem. To see the possible attributes, use the attributes property of the [raster_type](/python/latest/api-reference/arcgis.raster.toc.html#rastertype) instance."
]
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": null,
"id": "bf3f10d9-5ce1-4e7f-89e5-1b7dbc147749",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'name': 'Frame Camera',\n",
" 'camera_info': 'C:\\\\SampleData\\\\RM_DigitalAerial_Tutorial_2D\\\\Nadir_FramesCam_unc.csv',\n",
" 'processing_template': None,\n",
" 'dem': 'C:\\\\SampleData\\\\RM_DigitalAerial_Tutorial_2D\\\\DEM\\\\DEM_USGS_1m.tif',\n",
" 'averagezdem': None,\n",
" 'constant_z': None,\n",
" 'zfactor': None,\n",
" 'zoffset': None,\n",
" 'correct_geoid': None,\n",
" 'estimate_flight_height': None,\n",
" 'is_altitude_flight_height': None,\n",
" 'minimum_flight_height': None,\n",
" 'stretch_type': None,\n",
" 'scale_factor': None,\n",
" 'valid_range': None}"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"DA_src.raster_type.attributes"
]
Expand All @@ -212,8 +193,10 @@
"metadata": {},
"outputs": [],
"source": [
"mission = project.create_mission(image_sources = DA_src,\n",
" out_sr = {\"wkid\": 6423, \"vcsWkid\": 5703}) #NAD 1983 California/NAVD88"
"mission = project.create_mission(\n",
" image_sources = DA_src,\n",
" out_sr = {\"wkid\": 6423, \"vcsWkid\": 5703} # NAD 1983 California/NAVD88\n",
") "
]
},
{
Expand Down Expand Up @@ -251,7 +234,9 @@
"\n",
"### 3.1 Compute Initial Block Adjustment\n",
"\n",
"For this tutorial, you will perform adjustment for the mission created using `compute_sensor_model()` method. The `compute_sensor_model()` method computes block adjustment for the image collection and applies the frame transform to the images, which is based on the raster type information used when creating the image collection. It also generates the control points feature class, solution table, solution points feature class, and flight path feature class. (These feature classes and tables will be saved in raster store and will not be created in the ArcGIS Enterprise as separated items.)"
"For this tutorial, you will perform adjustment for the mission created using [compute_sensor_model()](/python/latest/api-reference/arcgis.raster.realitymapping.html#arcgis.raster._realitymapping_mission.Mission.compute_sensor_model) method. The *compute_sensor_model()* method computes block adjustment for the image collection and applies the frame transform to the images based on the raster type information used when creating the image collection. It also generates the control points feature class, solution table, solution points feature class, and flight path feature class. \n",
"\n",
"> *note:* These feature classes and tables will be saved in raster store and will not be created in the ArcGIS Enterprise as separated items."
]
},
{
Expand Down Expand Up @@ -291,7 +276,7 @@
"source": [
"## Step 4: Get Results\n",
"\n",
"The final step after block adjustment is to generate products. The `reconstruct_surface()` method can generate one or multiple reality mapping products- DSM, true ortho and DSM Mesh from adjusted imagery."
"The final step after block adjustment is to generate products. The [reconstruct_surface()](/python/latest/api-reference/arcgis.raster.realitymapping.html#arcgis.raster._realitymapping_mission.Mission.reconstruct_surface) method can generate one or multiple reality mapping products- DSM, true ortho and DSM Mesh from adjusted imagery."
]
},
{
Expand All @@ -301,7 +286,8 @@
"metadata": {},
"outputs": [],
"source": [
"mission_products_2d = mission.reconstruct_surface(scenario= \"AerialNadir\",\n",
"mission_products_2d = mission.reconstruct_surface(\n",
" scenario= \"AerialNadir\",\n",
" quality= \"Ultra\",\n",
" output_dsm_name= \"DigitalAerial2D_p_dsm\",\n",
" output_true_ortho_name= \"DigitalAerial2D_p_ortho\",\n",
Expand All @@ -322,7 +308,10 @@
"- Performed block adjustment to geometrically correct your imagery collection.\n",
"- Generated DSM, true ortho and DSM mesh products.\n",
"\n",
"The same concept and workflow demonstrated here can be adapted for <a href='create-trueortho-dsm-from-drone-imagery.ipynb'>UAV</a>, <a href='create-3D-digital-aerial-products.ipynb'>oblique digital aerial</a>, and <a href='create-trueortho-dsm-from-satellite-imagery.ipynb'>satellite</a> imagery processing."
"See additional guides to see the same concept and workflow demonstrated here adapted for different raster types:\n",
" * [UAV](../guide/create-trueortho-dsm-from-drone-imagery)\n",
" * [obligue digital aerial](../guide/create-3D-digital-aerial-products)\n",
" * [satellite imagery](../guide/create-trueortho-dsm-from-satellite-imagery)"
]
}
],
Expand All @@ -342,7 +331,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.10"
"version": "3.13.13"
}
},
"nbformat": 4,
Expand Down
Loading