Skip to content

Commit a21a999

Browse files
committed
Update parcel fabric tuts
1 parent 1d6b545 commit a21a999

File tree

5 files changed

+5
-5
lines changed

5 files changed

+5
-5
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# Part 1 - Introduction to Parcel Fabric layers"]}, {"cell_type": "markdown", "metadata": {"toc": true}, "source": ["<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n", "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Part-1---Introduction-to-Parcel-Fabric-layers\" data-toc-modified-id=\"Part-1---Introduction-to-Parcel-Fabric-layers-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Part 1 - Introduction to Parcel Fabric layers</a></span><ul class=\"toc-item\"><li><ul class=\"toc-item\"><li><span><a href=\"#Anatomy-of-a-Parcel-Fabric\" data-toc-modified-id=\"Anatomy-of-a-Parcel-Fabric-1.0.1\"><span class=\"toc-item-num\">1.0.1&nbsp;&nbsp;</span>Anatomy of a Parcel Fabric</a></span></li><li><span><a href=\"#The-Parcel-Fabric-FeatureLayerCollection\" data-toc-modified-id=\"The-Parcel-Fabric-FeatureLayerCollection-1.0.2\"><span class=\"toc-item-num\">1.0.2&nbsp;&nbsp;</span>The Parcel Fabric FeatureLayerCollection</a></span></li><li><span><a href=\"#Parcel-Fabric-Feature-Layers\" data-toc-modified-id=\"Parcel-Fabric-Feature-Layers-1.0.3\"><span class=\"toc-item-num\">1.0.3&nbsp;&nbsp;</span>Parcel Fabric Feature Layers</a></span></li><li><span><a href=\"#The-ParcelFabricManager-object\" data-toc-modified-id=\"The-ParcelFabricManager-object-1.0.4\"><span class=\"toc-item-num\">1.0.4&nbsp;&nbsp;</span>The <code>ParcelFabricManager</code> object</a></span><ul class=\"toc-item\"><li><span><a href=\"#List-operations-(methods)-possible-on-a-ParcelFabricManager-object\" data-toc-modified-id=\"List-operations-(methods)-possible-on-a-ParcelFabricManager-object-1.0.4.1\"><span class=\"toc-item-num\">1.0.4.1&nbsp;&nbsp;</span>List operations (methods) possible on a <code>ParcelFabricManager</code> object</a></span></li></ul></li><li><span><a href=\"#API-Ref-Documentation\" data-toc-modified-id=\"API-Ref-Documentation-1.0.5\"><span class=\"toc-item-num\">1.0.5&nbsp;&nbsp;</span>API Ref Documentation</a></span></li></ul></li></ul></li></ul></div>"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Anatomy of a Parcel Fabric\n", "\n", "A parcel fabric stores a dataset of connected parcels or parcel network. Parcels are composed of polygon features, line features, and point features. Parcel polygons are defined by lines that store COGO dimensions from the recorded, legal document.\n", "\n", "A Parcel Fabric consists of:\n", "\n", "1. A geodatabase topology\n", "2. A polygon feature class called Records for storing legal document information about a set of parcels.\n", "3. A point feature class representing the physical, coordinated x,y,z locations on the ground.\n", "4. A lines feature class called Connection Lines to represent dimensions between points that are not parcel boundaries.\n", "5. Any number of parcel types\n", "\n", "<img align='left' width='450' src='https://pro.arcgis.com/en/pro-app/latest/help/data/parcel-editing/GUID-2239DE47-1DCF-42ED-B58D-D6C4B99DCA71-web.png' />"]}, {"cell_type": "markdown", "metadata": {}, "source": ["A parcel type is composed of a polygon and line feature class and can be extended to contain attributes required by an organization.\n", "A parcel type consists of a pair of feature classes. \n", "- A polygon feature class representing the area of a parcel.\n", "- A COGO enabled line feature class representing the boundary of a parcel.\n", "\n", "The cells below will demonstrate how to access the different parts of a parcel fabric"]}, {"cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": ["from arcgis import GIS\n", "from arcgis.features.layer import FeatureLayerCollection"]}, {"cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [{"data": {"text/plain": ["['https://myserver.domain.com/web_adaptor/rest/services/WashingtonCountyLSA/FeatureServer',\n", " 'https://myserver.domain.com/web_adaptor/rest/services/WashingtonCountyLSA/ParcelFabricServer',\n", " 'https://myserver.domain.com/web_adaptor/rest/services/WashingtonCountyLSA/VersionManagementServer']"]}, "execution_count": 3, "metadata": {}, "output_type": "execute_result"}], "source": ["base_server_url = \"https://myserver.domain.com/web_adaptor/rest/services/WashingtonCountyLSA/\"\n", "gis = GIS(\"https://myserver.domain.com/web_adaptor/\", \"username\", \"pass.word\", verify_cert=False)\n", "\n", "# generate the enpoint urls for feature server, version management and parcel fabric\n", "service_endpoints = [\"FeatureServer\", \"ParcelFabricServer\", \"VersionManagementServer\"] \n", "service_urls = {url: base_server_url + url for url in service_endpoints}\n", "\n", "[v for k, v in service_urls.items()]"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### The Parcel Fabric FeatureLayerCollection\n", "\n", "A Parcel Fabric is published as an entire set containing the feature classes and topology described above. The FeatureLayerCollection (FLC) provides access to these items as well as the properties and capabilities of the feature service itself."]}, {"cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [{"data": {"text/plain": ["'Query,Create,Update,Delete,Uploads,Editing,ChangeTracking'"]}, "execution_count": 4, "metadata": {}, "output_type": "execute_result"}], "source": ["parcel_fabric_flc = FeatureLayerCollection(service_urls[\"FeatureServer\"], gis)\n", "parcel_fabric_flc.properties.capabilities"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### Parcel Fabric Feature Layers"]}, {"cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [{"data": {"text/plain": ["['Layer ID: 1 - Name: Records',\n", " 'Layer ID: 3 - Name: Dirty Areas',\n", " 'Layer ID: 4 - Name: Point Errors',\n", " 'Layer ID: 5 - Name: Line Errors',\n", " 'Layer ID: 6 - Name: Polygon Errors',\n", " 'Layer ID: 7 - Name: Points',\n", " 'Layer ID: 8 - Name: Connection Lines',\n", " 'Layer ID: 10 - Name: Adjustment Points',\n", " 'Layer ID: 11 - Name: Adjustment Lines',\n", " 'Layer ID: 12 - Name: Adjustment Vectors',\n", " 'Layer ID: 14 - Name: Tax_PF_Lines',\n", " 'Layer ID: 15 - Name: Tax_PF',\n", " 'Layer ID: 17 - Name: ConveyanceDivision_PF_Lines',\n", " 'Layer ID: 18 - Name: ConveyanceDivision_PF',\n", " 'Layer ID: 20 - Name: Block_PF_Lines',\n", " 'Layer ID: 21 - Name: Block_PF',\n", " 'Layer ID: 23 - Name: SimultaneousConveyance_PF_Lines',\n", " 'Layer ID: 24 - Name: SimultaneousConveyance_PF']"]}, "execution_count": 5, "metadata": {}, "output_type": "execute_result"}], "source": ["[f\"Layer ID: {layer.id} - Name: {layer.name}\" \n", " for layer in parcel_fabric_flc.properties.layers \n", " if layer.type == \"Feature Layer\"]"]}, {"cell_type": "markdown", "metadata": {"tags": []}, "source": ["### The `ParcelFabricManager` object\n", "\n", "The Parcel Fabric Manager is responsible for exposing parcel management capabilities to support a variety of workflows from different clients and systems.\n"]}, {"cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [{"data": {"text/plain": ["{\n", " \"name\": \"Parcel Fabric Server\",\n", " \"type\": \"Map Server Extension\",\n", " \"ParcelFabricLayers\": 1\n", "}"]}, "execution_count": 7, "metadata": {}, "output_type": "execute_result"}], "source": ["from arcgis.features._parcel import ParcelFabricManager\n", "\n", "# Create VMS from parcel fabric FLC\n", "version_management_service = parcel_fabric_flc.versions\n", "\n", "with version_management_service.get(\"admin.generate_fabric_links\", \"read\") as version:\n", " parcel_fabric_manager = ParcelFabricManager(\n", " service_urls[\"ParcelFabricServer\"], \n", " gis, \n", " version, \n", " parcel_fabric_flc)\n", "\n", "parcel_fabric_manager.properties"]}, {"cell_type": "markdown", "metadata": {}, "source": ["#### List operations (methods) possible on a `ParcelFabricManager` object"]}, {"cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [{"data": {"text/plain": ["['analyze_least_squares_adjustment',\n", " 'apply_least_squares_adjustment',\n", " 'assign_to_record',\n", " 'build',\n", " 'change_type',\n", " 'clip',\n", " 'copy_lines_to_parcel_type',\n", " 'create_seeds',\n", " 'delete',\n", " 'divide',\n", " 'duplicate',\n", " 'layer',\n", " 'merge',\n", " 'properties',\n", " 'update_history']"]}, "execution_count": 8, "metadata": {}, "output_type": "execute_result"}], "source": ["[n for n in dir(parcel_fabric_manager) if not n.startswith(\"_\")]"]}, {"cell_type": "markdown", "metadata": {"tags": []}, "source": ["### API Ref Documentation\n", "\n", "- [ArcGIS Python API - Version Manager](https://developers.arcgis.com/python/api-reference/arcgis.features.managers.html#versionmanager)\n", "- [ArcGIS Python API - Parcel Fabric Manager](https://developers.arcgis.com/python/api-reference/arcgis.features.managers.html#parcelfabricmanager)\n", "- [ArcGIS REST API - VersionManagementServer](https://developers.arcgis.com/rest/services-reference/enterprise/version-management-service.htm)\n", "- [ArcGIS REST API - ParcelFabricServer](https://developers.arcgis.com/rest/services-reference/enterprise/overview-of-parcel-fabric-sevices.htm)\n", "- [ArcGIS Pro - Branch Versioning Scenarios](https://pro.arcgis.com/en/pro-app/latest/help/data/geodatabases/overview/branch-version-scenarios.htm)"]}], "metadata": {"interpreter": {"hash": "3ec7365f029c0271ef64d13dd7112b33803c4eb4bcfd1477ee827987865a2476"}, "kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2"}, "toc": {"base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": true}}, "nbformat": 4, "nbformat_minor": 4}
1+
{"cells":[{"cell_type":"markdown","metadata":{},"source":["# Part 1 - Introduction to Parcel Fabric layers"]},{"cell_type":"markdown","metadata":{"toc":true},"source":["<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n","<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Part-1---Introduction-to-Parcel-Fabric-layers\" data-toc-modified-id=\"Part-1---Introduction-to-Parcel-Fabric-layers-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Part 1 - Introduction to Parcel Fabric layers</a></span><ul class=\"toc-item\"><li><ul class=\"toc-item\"><li><span><a href=\"#Anatomy-of-a-Parcel-Fabric\" data-toc-modified-id=\"Anatomy-of-a-Parcel-Fabric-1.0.1\"><span class=\"toc-item-num\">1.0.1&nbsp;&nbsp;</span>Anatomy of a Parcel Fabric</a></span></li><li><span><a href=\"#The-Parcel-Fabric-FeatureLayerCollection\" data-toc-modified-id=\"The-Parcel-Fabric-FeatureLayerCollection-1.0.2\"><span class=\"toc-item-num\">1.0.2&nbsp;&nbsp;</span>The Parcel Fabric FeatureLayerCollection</a></span></li><li><span><a href=\"#Parcel-Fabric-Feature-Layers\" data-toc-modified-id=\"Parcel-Fabric-Feature-Layers-1.0.3\"><span class=\"toc-item-num\">1.0.3&nbsp;&nbsp;</span>Parcel Fabric Feature Layers</a></span></li><li><span><a href=\"#The-ParcelFabricManager-object\" data-toc-modified-id=\"The-ParcelFabricManager-object-1.0.4\"><span class=\"toc-item-num\">1.0.4&nbsp;&nbsp;</span>The <code>ParcelFabricManager</code> object</a></span><ul class=\"toc-item\"><li><span><a href=\"#List-operations-(methods)-possible-on-a-ParcelFabricManager-object\" data-toc-modified-id=\"List-operations-(methods)-possible-on-a-ParcelFabricManager-object-1.0.4.1\"><span class=\"toc-item-num\">1.0.4.1&nbsp;&nbsp;</span>List operations (methods) possible on a <code>ParcelFabricManager</code> object</a></span></li></ul></li><li><span><a href=\"#API-Ref-Documentation\" data-toc-modified-id=\"API-Ref-Documentation-1.0.5\"><span class=\"toc-item-num\">1.0.5&nbsp;&nbsp;</span>API Ref Documentation</a></span></li></ul></li></ul></li></ul></div>"]},{"cell_type":"markdown","metadata":{},"source":["### Anatomy of a Parcel Fabric\n","\n","A parcel fabric stores a dataset of connected parcels or parcel network. Parcels are composed of polygon features, line features, and point features. Parcel polygons are defined by lines that store COGO dimensions from the recorded, legal document.\n","\n","A Parcel Fabric consists of:\n","\n","1. A geodatabase topology\n","2. A polygon feature class called Records for storing legal document information about a set of parcels.\n","3. A point feature class representing the physical, coordinated x,y,z locations on the ground.\n","4. A lines feature class called Connection Lines to represent dimensions between points that are not parcel boundaries.\n","5. Any number of parcel types\n","\n","<img align='left' width='450' src='https://pro.arcgis.com/en/pro-app/latest/help/data/parcel-editing/GUID-2239DE47-1DCF-42ED-B58D-D6C4B99DCA71-web.png' />"]},{"cell_type":"markdown","metadata":{},"source":["A parcel type is composed of a polygon and line feature class and can be extended to contain attributes required by an organization.\n","A parcel type consists of a pair of feature classes. \n","- A polygon feature class representing the area of a parcel.\n","- A COGO enabled line feature class representing the boundary of a parcel.\n","\n","The cells below will demonstrate how to access the different parts of a parcel fabric"]},{"cell_type":"code","execution_count":1,"metadata":{},"outputs":[],"source":["from arcgis import GIS\n","from arcgis.features.layer import FeatureLayerCollection"]},{"cell_type":"code","execution_count":8,"metadata":{},"outputs":[{"name":"stderr","output_type":"stream","text":["Setting `verify_cert` to False is a security risk, use at your own risk.\n"]},{"data":{"text/plain":["['https://krennic.esri.com/server/rest/services/WashingtonCountyLSA/FeatureServer',\n"," 'https://krennic.esri.com/server/rest/services/WashingtonCountyLSA/ParcelFabricServer',\n"," 'https://krennic.esri.com/server/rest/services/WashingtonCountyLSA/VersionManagementServer']"]},"execution_count":8,"metadata":{},"output_type":"execute_result"}],"source":["base_server_url = \"https://myserver.domain.com/web_adaptor/rest/services/WashingtonCountyLSA/\"\n","gis = GIS(\"https://myserver.domain.com/web_adaptor/\", \"username\", \"pass.word\", verify_cert=False)\n","\n","# generate the enpoint urls for feature server, version management and parcel fabric\n","service_endpoints = [\"FeatureServer\", \"ParcelFabricServer\", \"VersionManagementServer\"] \n","service_urls = {url: base_server_url + url for url in service_endpoints}\n","\n","[v for k, v in service_urls.items()]"]},{"cell_type":"markdown","metadata":{},"source":["### The Parcel Fabric FeatureLayerCollection\n","\n","A Parcel Fabric is published as an entire set containing the feature classes and topology described above. The FeatureLayerCollection (FLC) provides access to these items as well as the properties and capabilities of the feature service itself."]},{"cell_type":"code","execution_count":9,"metadata":{},"outputs":[{"data":{"text/plain":["'Query,Create,Update,Delete,Uploads,Editing,Sync,Extract,ChangeTracking'"]},"execution_count":9,"metadata":{},"output_type":"execute_result"}],"source":["parcel_fabric_flc = FeatureLayerCollection(service_urls[\"FeatureServer\"], gis)\n","parcel_fabric_flc.properties.capabilities"]},{"cell_type":"markdown","metadata":{},"source":["### Parcel Fabric Feature Layers"]},{"cell_type":"code","execution_count":5,"metadata":{},"outputs":[{"data":{"text/plain":["['Layer ID: 1 - Name: Records',\n"," 'Layer ID: 3 - Name: Dirty Areas',\n"," 'Layer ID: 4 - Name: Point Errors',\n"," 'Layer ID: 5 - Name: Line Errors',\n"," 'Layer ID: 6 - Name: Polygon Errors',\n"," 'Layer ID: 7 - Name: Points',\n"," 'Layer ID: 8 - Name: Connection Lines',\n"," 'Layer ID: 10 - Name: Adjustment Points',\n"," 'Layer ID: 11 - Name: Adjustment Lines',\n"," 'Layer ID: 12 - Name: Adjustment Vectors',\n"," 'Layer ID: 14 - Name: Tax_PF_Lines',\n"," 'Layer ID: 15 - Name: Tax_PF',\n"," 'Layer ID: 17 - Name: ConveyanceDivision_PF_Lines',\n"," 'Layer ID: 18 - Name: ConveyanceDivision_PF',\n"," 'Layer ID: 20 - Name: Block_PF_Lines',\n"," 'Layer ID: 21 - Name: Block_PF',\n"," 'Layer ID: 23 - Name: SimultaneousConveyance_PF_Lines',\n"," 'Layer ID: 24 - Name: SimultaneousConveyance_PF']"]},"execution_count":5,"metadata":{},"output_type":"execute_result"}],"source":["[f\"Layer ID: {layer.id} - Name: {layer.name}\" \n"," for layer in parcel_fabric_flc.properties.layers \n"," if layer.type == \"Feature Layer\"]"]},{"cell_type":"markdown","metadata":{"tags":[]},"source":["### The `ParcelFabricManager` object\n","\n","The Parcel Fabric Manager is responsible for exposing parcel management capabilities to support a variety of workflows from different clients and systems.\n"]},{"cell_type":"code","execution_count":11,"metadata":{},"outputs":[{"data":{"text/plain":["{\n"," \"name\": \"Parcel Fabric Server\",\n"," \"type\": \"Map Server Extension\",\n"," \"ParcelFabricLayers\": 1\n","}"]},"execution_count":11,"metadata":{},"output_type":"execute_result"}],"source":["from arcgis.features._parcel import ParcelFabricManager\n","\n","# Create VMS from parcel fabric FLC\n","version_management_service = parcel_fabric_flc.versions\n","\n","with version_management_service.get(\"sde.DEFAULT\", \"read\") as version:\n"," parcel_fabric_manager = ParcelFabricManager(\n"," service_urls[\"ParcelFabricServer\"], \n"," gis, \n"," version, \n"," parcel_fabric_flc)\n","\n","parcel_fabric_manager.properties"]},{"cell_type":"markdown","metadata":{},"source":["#### List operations (methods) possible on a `ParcelFabricManager` object"]},{"cell_type":"code","execution_count":12,"metadata":{},"outputs":[{"data":{"text/plain":["['analyze_least_squares_adjustment',\n"," 'apply_least_squares_adjustment',\n"," 'assign_to_record',\n"," 'build',\n"," 'change_type',\n"," 'clip',\n"," 'copy_lines_to_parcel_type',\n"," 'create_seeds',\n"," 'delete',\n"," 'divide',\n"," 'duplicate',\n"," 'layer',\n"," 'merge',\n"," 'properties',\n"," 'reassign_features_to_record',\n"," 'reconstruct_from_seeds',\n"," 'transfer_parcel',\n"," 'update_history']"]},"execution_count":12,"metadata":{},"output_type":"execute_result"}],"source":["[n for n in dir(parcel_fabric_manager) if not n.startswith(\"_\")]"]},{"cell_type":"markdown","metadata":{"tags":[]},"source":["### API Ref Documentation\n","\n","- [ArcGIS Python API - Version Manager](https://developers.arcgis.com/python/api-reference/arcgis.features.managers.html#versionmanager)\n","- [ArcGIS Python API - Parcel Fabric Manager](https://developers.arcgis.com/python/api-reference/arcgis.features.managers.html#parcelfabricmanager)\n","- [ArcGIS REST API - VersionManagementServer](https://developers.arcgis.com/rest/services-reference/enterprise/version-management-service.htm)\n","- [ArcGIS REST API - ParcelFabricServer](https://developers.arcgis.com/rest/services-reference/enterprise/overview-of-parcel-fabric-sevices.htm)\n","- [ArcGIS Pro - Branch Versioning Scenarios](https://pro.arcgis.com/en/pro-app/latest/help/data/geodatabases/overview/branch-version-scenarios.htm)"]}],"metadata":{"kernelspec":{"display_name":"Python 3.9.11 ('arcgispro-py3')","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.11"},"toc":{"base_numbering":1,"nav_menu":{},"number_sections":true,"sideBar":true,"skip_h1_title":false,"title_cell":"Table of Contents","title_sidebar":"Contents","toc_cell":true,"toc_position":{},"toc_section_display":true,"toc_window_display":true},"vscode":{"interpreter":{"hash":"ce21b655b4d6c9e397d5ad93d5666c623f49909f6d0cc2f72076dafcf1b3ecfb"}}},"nbformat":4,"nbformat_minor":4}

0 commit comments

Comments
 (0)