From d41e3c06b18eac7df19fdb35a6eb6f2069735e55 Mon Sep 17 00:00:00 2001 From: Tarun Kukreja Date: Wed, 4 Sep 2024 16:29:03 -0700 Subject: [PATCH 1/4] partially resolved, currently showing validation errors --- .../using_and_updating_GIS_content.ipynb | 1734 +++++++---------- 1 file changed, 685 insertions(+), 1049 deletions(-) diff --git a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb index 7d02788b15..22fe68d8db 100644 --- a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb +++ b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb @@ -6,7 +6,7 @@ "source": [ "# Using and updating GIS content\n", "\n", - "The GIS is a warehouse of geographic content and services. ArcGIS includes several classes to make use of this content, publish new items and update them when needed. This sample on updating the content of web maps and web scenes will demonstrate the following\n", + "The GIS is a warehouse of geographic content and services. Arcgis includes several classes to make use of these content, publish new items and update the them when needed. This sample on updating the content of web maps and web scenes will demonstrate the following\n", " * **Replace web layers** of a web map. For instance, you can use this to update a web map when the services it points to were deleted. The sample shows how to read a web feature layer as a **FeatureService** object and inspect its properties.\n", " * **Drive the map widget by code**. In addition to displaying the interactive map widget, you can also set it to load at a particular extent. This is great for presentation purposes. During this process, the sample shows how to create and use a **MapView** object and a **Geocoder** object.\n", " * Make a **copy of a public web scene** item into your contents and then update it.\n", @@ -29,13 +29,21 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [ - ], + "outputs": [], "source": [ - "from arcgis.gis import GIS\n", - "from arcgis.mapping import WebMap, WebScene\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [], + "source": [ + "from arcgis.gis import GIS, ItemTypeEnum\n", + "from arcgis.map import Map, Scene\n", "from IPython.display import display\n", - "import json\n", "\n", "gis = GIS(profile=\"your_online_profile\")" ] @@ -44,10 +52,37 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Creating a web map and feature layer\n", + "# Creating a web map and feature layer\n", "We will will create a feature layer and a web map. We will then delete the feature layer and re-publish. This will change the service and leave us with a broken layer inside our map, don't worry we will fix this in the next steps." ] }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nThis is a multi-line comment.\\nYou can write multiple lines here.\\n1 -> content.add -> folder.add\\n'" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#### Changes\n", + "\"\"\"\n", + "This is a multi-line comment.\n", + "You can write multiple lines here.\n", + "1 -> content.add -> folder.add\n", + "2 -> added check to csv_item.publish\n", + "3 -> removed Fix errors in web map section since it is working fine\n", + "\"\"\"" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -57,90 +92,106 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "my_csv = 'data/updating_gis_content/capitals_1.csv'\n", - "item_prop = {'title':'USA Capitals spreadsheet for WebMap'}\n", - "csv_item = gis.content.add(item_properties=item_prop, data=my_csv)\n", - "capitals_item = csv_item.publish()" + "item_prop = {'title':'USA Capitals spreadsheet for WebMap', 'type':'CSV'}" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, + "outputs": [], "source": [ - "### Create WebMap, Add Layer, and Save" + "folder = gis.content.folders.get()\n", + "folder.add(item_properties = item_prop, file=my_csv)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "csv_item = None\n", + "csv_item_generator = folder.list(item_type=ItemTypeEnum.CSV.value)\n", + "while True:\n", + " item = next(csv_item_generator)\n", + " if (item.title == \"USA Capitals spreadsheet for WebMap\"):\n", + " csv_item = item\n", + " break\n", + " " ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 73, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " USA Capitals WebMap\n", - " \n", - "
A webmap that contains USA capitals as a feature layer.Web Map by arcgis_python\n", - "
Last Modified: April 15, 2024\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], "text/plain": [ - "" + "[,\n", + " ]" ] }, - "execution_count": 20, + "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "wm = WebMap()\n", - "wm.add_layer(capitals_item)\n", - "wm.save(\n", - " {\n", - " \"title\": \"USA Capitals WebMap\", \n", - " \"tags\": [\"python\", \"webmap\"], \n", - " \"snippet\": \"A webmap that contains USA capitals as a feature layer.\"\n", - " }\n", - ")" + "gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' \", outside_org=True)" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 69, "metadata": {}, + "outputs": [], "source": [ - "### Delete Feature Layer and re-publish\n", - "Why? This seems a bit weird to put in a sample, but this demonstrates how some feature layers can get deleted without us realizing that they are part of webmaps. Below we will get the webmap and see that the layer does not show up! \n", - "This sample can then guide you to fix this problem of missing layers." + "feature_service_list = gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' , type:Feature Service\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "feature_service_list" + ] + }, + { + "cell_type": "code", + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ - "capitals_item.delete()" + "capitals_item = None\n", + "if not feature_service_list:\n", + " capitals_item = csv_item.publish()\n", + "else:\n", + " capitals_item = feature_service_list[0]" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -149,16 +200,16 @@ "
\n", " \n", "\n", "
\n", " USA Capitals spreadsheet for WebMap\n", " \n", - "
Feature Layer Collection by arcgis_python\n", + "

Feature Layer Collection by arcgis_python\n", "
Last Modified: April 11, 2024\n", - "
0 comments, 8 views\n", + "
0 comments, 20 views\n", "
\n", "
\n", " " @@ -167,226 +218,188 @@ "" ] }, - "execution_count": 21, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# re-publish so we can find it again\n", - "new_capitals = csv_item.publish()\n", - "new_capitals" + "capitals_item" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Using and updating a web map\n", - "We will search for that web map that has broken layers, render it on the notebook and update it." + "### Create WebMap, Add Layer, and Save" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 58, "metadata": {}, "outputs": [], - "source": [ - "search_result = gis.content.search(\"title:USA Capitals WebMap\", item_type = \"Web Map\")" - ] + "source": [] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": null, "metadata": {}, - "source": [ - "Read the web map as a `WebMap` object" - ] + "outputs": [], + "source": [] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "wm_item = search_result[0]\n", - "web_map_obj = WebMap(wm_item)" - ] + "source": [] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " USA Capitals WebMap\n", + " \n", + "
A webmap that contains USA capitals as a feature layer.
Web Map by arcgis_python\n", + "
Last Modified: September 04, 2024\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# display the web map obj in an interactive widget\n", - "web_map_obj" + "wm = Map()\n", + "wm.content.add(capitals_item)\n", + "wm.save({\"title\": \"USA Capitals WebMap\", \"tags\": [\"python\", \"webmap\"], \"snippet\": \"A webmap that contains USA capitals as a feature layer.\"})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Fix errors in web map\n", - "The widget loads an empty web map with just a basemap. Let us investigate the contents of the web map to determine the issue. You can query the layers in the web map using the `layers` property." + "### Delete Feature Layer and re-publish\n", + "Why? This seems a bit weird to put in a sample, but this demonstrates how some feature layers can get deleted without us realizing that they are part of webmaps. Below we will get the webmap and see that the layer does not show up! \n", + "This sample can then guide you to fix this problem of missing layers." ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 68, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " USA Capitals spreadsheet for WebMap\n", + " \n", + "

Feature Layer Collection by arcgis_python\n", + "
Last Modified: April 11, 2024\n", + "
0 comments, 20 views\n", + "
\n", + "
\n", + " " + ], "text/plain": [ - "[{\n", - " \"title\": \"USA_Capitals_spreadsheet_for_WebMap\",\n", - " \"opacity\": 1,\n", - " \"visibility\": true,\n", - " \"id\": \"5053d89e-4861-47a6-a4d3-3bbd9cc27bf0\",\n", - " \"layerDefinition\": {\n", - " \"definitionExpression\": null,\n", - " \"drawingInfo\": {\n", - " \"renderer\": {\n", - " \"type\": \"simple\",\n", - " \"symbol\": {\n", - " \"type\": \"esriPMS\",\n", - " \"url\": \"RedSphere.png\",\n", - " \"imageData\": \"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\",\n", - " \"contentType\": \"image/png\",\n", - " \"width\": 15,\n", - " \"height\": 15\n", - " }\n", - " }\n", - " }\n", - " },\n", - " \"layerType\": \"ArcGISFeatureLayer\",\n", - " \"itemId\": \"eea32f0a785948b88d612e639cfa02a1\",\n", - " \"url\": \"https://services7.arcgis.com/JEwYeAy2cc8qOe3o/arcgis/rest/services/USA_Capitals_spreadsheet_for_WebMap/FeatureServer/0\",\n", - " \"popupInfo\": {\n", - " \"title\": \"USA_Capitals_spreadsheet_for_WebMap\",\n", - " \"fieldInfos\": [\n", - " {\n", - " \"fieldName\": \"city_id\",\n", - " \"label\": \"city_id\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"name\",\n", - " \"label\": \"name\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"state\",\n", - " \"label\": \"state\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"capital\",\n", - " \"label\": \"capital\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"pop2000\",\n", - " \"label\": \"pop2000\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"pop2007\",\n", - " \"label\": \"pop2007\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"longitude\",\n", - " \"label\": \"longitude\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"latitude\",\n", - " \"label\": \"latitude\",\n", - " \"isEditable\": true,\n", - " \"visible\": true\n", - " },\n", - " {\n", - " \"fieldName\": \"ObjectId\",\n", - " \"label\": \"ObjectId\",\n", - " \"isEditable\": false,\n", - " \"visible\": true\n", - " }\n", - " ],\n", - " \"description\": null,\n", - " \"showAttachments\": true,\n", - " \"mediaInfos\": []\n", - " }\n", - " }]" + "" ] }, - "execution_count": 26, + "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "web_map_obj.layers" + "capitals_item.delete(permanent=True)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 74, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " USA Capitals spreadsheet for WebMap\n", + " \n", + "

Feature Layer Collection by arcgis_python\n", + "
Last Modified: September 04, 2024\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], "text/plain": [ - "'eea32f0a785948b88d612e639cfa02a1'" + "" ] }, - "execution_count": 27, + "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Feature service item id for the missing layer:\n", - "web_map_obj.layers[0][\"itemId\"]" + "# re-publish so we can find it again\n", + "new_capitals = csv_item.publish()\n", + "new_capitals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The web map has only 1 layer and that points to a feature service named **USA_Capitals_spreadsheet_for_WebMap**. Let us verify if a feature service of that name exists on the server. If not, let us try to find the closest match." + "# Using and updating a web map\n", + "We will search for that web map that has broken layers, render it on the notebook and update it." ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[,\n", + " ]" ] }, "metadata": {}, @@ -394,7 +407,7 @@ } ], "source": [ - "search_result = gis.content.search('title:USA_Capitals_spreadsheet_for_WebMap', item_type = 'Feature Service')\n", + "search_result = gis.content.search(\"title:USA Capitals WebMap\", item_type = \"Web Map\")\n", "display(search_result)" ] }, @@ -402,131 +415,58 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let's check the itemId to make sure it is different. This means we have re-published it and the service was changed." - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'62cf777b13ab4693897fccc5a00d76f7'" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "search_result[0].id" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is likely the old service was deleted and a new one was published. Let us update the web map with the new feature layer" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "capitals = search_result[0]\n", - "capitals.layers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The new feature service does have a layer with id `0`. Hence we can use the same layer id while switching the url. To remove the old layer, call `remove_layer()` method. Then add the correct `FeatureLayer` object by calling the `add_layer()` method on the `WebMap` object." + "Read the web map as a `WebMap` object" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 80, "metadata": {}, "outputs": [], "source": [ - "# remove the old layer from the web map\n", - "web_map_obj.remove_layer(web_map_obj.layers[0])" + "wm_item = search_result[0]\n", + "\n", + "\n", + "web_map_obj = Map(wm_item)" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 81, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f83996dc834b4418880574adee372f01", + "version_major": 2, + "version_minor": 1 + }, "text/plain": [ - "True" + "Map(extent={'xmin': -14954681.929724608, 'ymin': 3341779.8113346146, 'xmax': -12529809.39213255, 'ymax': 51799…" ] }, - "execution_count": 32, + "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# add the correct layer. While adding you can customize the title\n", - "web_map_obj.add_layer(capitals.layers[0], options={'title':'USA Capitals'})" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Check the layers on the web map" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "USA Capitals https://services7.arcgis.com/JEwYeAy2cc8qOe3o/arcgis/rest/services/USA_Capitals_spreadsheet_for_WebMap/FeatureServer/0\n" - ] - } - ], - "source": [ - "for lyr in web_map_obj.layers:\n", - " print(lyr.title + \" \" + lyr.url)" + "# display the web map obj in an interactive widget\n", + "web_map_obj" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Update the web map\n", - "Now the web map should be fixed as it points to a live service. To update the web map, we call the `update()` method. You have the option to update the thumbnail or any other item properties at this time." + "## Update the web map\n", + "To update the web map, we call the `update()` method. You have the option to update the thumbnail or any other item properties at this time." ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 82, "metadata": {}, "outputs": [ { @@ -535,7 +475,7 @@ "True" ] }, - "execution_count": 34, + "execution_count": 82, "metadata": {}, "output_type": "execute_result" } @@ -545,48 +485,22 @@ " thumbnail = \"./data/webmap_thumbnail.png\")" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Query the web map object to visualize it in the notebook" - ] - }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 84, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "" - ], "text/plain": [ - "" + "True" ] }, - "execution_count": 36, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "web_map_obj" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The web map was sucessfully overwritten with correct operational layers. You can interact with the widget and zoom into the USA to observe the locations of capitals." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# Let's clean it up so we can always run this notebook again\n", "wm_item.delete()\n", @@ -598,13 +512,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Using and updating a web scene\n", + "# Using and updating a web scene\n", "In the sample above we observed how to update a web map. Updating the web scene is similar, we use the `update()` method. Let us look at the example of a web scene that displays tropical cyclones over the Pacific ocean." ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -620,9 +534,9 @@ "
\n", " Western Pacific Typhoons (2005)\n", " \n", - "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005Web Scene by esri_3d\n", + "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by esri_3d\n", "
Last Modified: May 01, 2020\n", - "
1 comments, 21096 views\n", + "
1 comments, 21732 views\n", "
\n", " \n", " " @@ -631,7 +545,7 @@ "" ] }, - "execution_count": 38, + "execution_count": 85, "metadata": {}, "output_type": "execute_result" } @@ -651,26 +565,27 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 89, "metadata": {}, "outputs": [ { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" + "ename": "ValidationError", + "evalue": "1 validation error for Webscene\nground\n Field required [type=missing, input_value={'operationalLayers': [{'...'viewingMode': 'global'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.5/v/missing", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValidationError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[89], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:254\u001b[0m, in \u001b[0;36mScene.__init__\u001b[1;34m(self, location, item, gis, **kwargs)\u001b[0m\n\u001b[0;32m 250\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_setup_gis_properties(gis)\n\u001b[0;32m 252\u001b[0m \u001b[38;5;66;03m# Set up the scene that will be used\u001b[39;00m\n\u001b[0;32m 253\u001b[0m \u001b[38;5;66;03m# either existing or new instance\u001b[39;00m\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_setup_webscene_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 256\u001b[0m \u001b[38;5;66;03m# Assign the definition to helper class\u001b[39;00m\n\u001b[0;32m 257\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_set_widget_definition(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:295\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 292\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mversion\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;66;03m# webscene spec will update this\u001b[39;00m\n\u001b[0;32m 294\u001b[0m \u001b[38;5;66;03m# Use pydantic dataclass from webscene spec generation\u001b[39;00m\n\u001b[1;32m--> 295\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m \u001b[43mws\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mWebscene\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 296\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 297\u001b[0m \u001b[38;5;66;03m# New Scene\u001b[39;00m\n\u001b[0;32m 298\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mitem \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\pydantic\\main.py:164\u001b[0m, in \u001b[0;36mBaseModel.__init__\u001b[1;34m(__pydantic_self__, **data)\u001b[0m\n\u001b[0;32m 162\u001b[0m \u001b[38;5;66;03m# `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks\u001b[39;00m\n\u001b[0;32m 163\u001b[0m __tracebackhide__ \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 164\u001b[0m \u001b[43m__pydantic_self__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__pydantic_validator__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalidate_python\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mself_instance\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m__pydantic_self__\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[1;31mValidationError\u001b[0m: 1 validation error for Webscene\nground\n Field required [type=missing, input_value={'operationalLayers': [{'...'viewingMode': 'global'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.5/v/missing" + ] } ], "source": [ "web_scene_item = search_result[0]\n", - "web_scene_obj = WebScene(web_scene_item)\n", + "web_scene_obj = Scene(item=web_scene_item)\n", "\n", "# display web scene in the notebook\n", "web_scene_obj" @@ -679,7 +594,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "This is a great web scene and it displays a lot of hurricane tracks. However, we want to create a new one with only a particular subset of data and customize the basemaps. To modify this web scene, let us first make a copy of it and publish it into your portal." @@ -689,473 +607,376 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Make a copy of the public web scene item\n", - "To make a copy, we essentially download the content of the web scene JSON, remove the parts we don't want, add the layers that we want and publish a new item using that information. The publishing steps are similar to what is described earlier in the **data preparation** section and in detail in the sample titled **Publishing web maps and web scenes**.\n", + "## Make a copy of the public web scene item\n", + "To make a copy, we essentially download the content of the web scene JSON, remove the parts we don't want, add the layers that we want and publish a new item using that information. The publishing steps is similar to what is described earlier in the **data preparation** section and in detail in the sample titled **Publishing web maps and web scenes**.\n", "\n", - "Let's say, we are only interested in the storms that occur in summer. Summer in tropical Asia is around April-June and that matches with a layer in the existing web scene. Let us query the `operationalLayers` section of the web scene to understand what the layers look like.\n", + "Let's say, we are only interested in the storms that occur in summer. Summer in tropical Asia is around April-June and that matches with a layer in the existing web scene. Let us query the `operationalLayers` section of the web scene to understand how the layers look like.\n", "\n", "### Update operational layers of new web scene" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': '882ce65eceda4e2ba2ad65f9e2c0632f',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'symbolLayers': [{'material': {'color': [0, 169, 230],\n", + " 'transparency': 0},\n", + " 'size': 5,\n", + " 'type': 'Line'}],\n", + " 'type': 'LineSymbol3D'},\n", + " 'type': 'simple'}},\n", + " 'elevationInfo': {'mode': 'onTheGround'},\n", + " 'minScale': 120000000},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", " 'opacity': 1,\n", + " 'popupInfo': {'description': \"

Typhoon {name}

Started: {datedescription}

\",\n", + " 'mediaInfos': [],\n", + " 'title': '{name}'},\n", " 'title': 'Typhoon Paths',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/18',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'minScale': 120000000,\n", - " 'maxScale': 0,\n", - " 'elevationInfo': {'mode': 'onTheGround'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'LineSymbol3D',\n", - " 'symbolLayers': [{'material': {'color': [0, 169, 230]},\n", - " 'type': 'Line',\n", - " 'size': 5}]}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{name}',\n", - " 'popupElements': [{'type': 'text'}],\n", - " 'description': \"

Typhoon {name}

Started: {datedescription}

\"}},\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/18',\n", + " 'visibility': True},\n", " {'id': '14a37c86f84-layer21',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'October - December',\n", - " 'visibility': False,\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '7a24e304d2474d7eb29a712c95202140',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q4',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q4: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q4',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17',\n", + " 'visibility': False},\n", " {'id': '10944e27c9f04bc39b5821c0046523a5',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q4',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c7f247-layer20',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q4',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16',\n", + " 'visibility': False}],\n", " 'listMode': 'hide-children',\n", " 'opacity': 1,\n", - " 'title': 'September',\n", + " 'title': 'October - December',\n", " 'visibility': False,\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c7f247-layer20',\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '90eba5af0b084c569a55ebc9b3bfc21e',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_3',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q3_3: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q3_3',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14',\n", + " 'visibility': False},\n", " {'id': '341d7b380907439990e4c238147b46ce',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_3',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c78bc8-layer19',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q3_3',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13',\n", + " 'visibility': False}],\n", " 'listMode': 'hide-children',\n", " 'opacity': 1,\n", - " 'title': 'August',\n", + " 'title': 'September',\n", " 'visibility': False,\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c78bc8-layer19',\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '6e54f2736388480ab0a214cb468d48f9',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q3_2: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q3_2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11',\n", + " 'visibility': False},\n", " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c4590b-layer18',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q3_2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10',\n", + " 'visibility': False}],\n", " 'listMode': 'hide-children',\n", " 'opacity': 1,\n", - " 'title': 'July',\n", + " 'title': 'August',\n", " 'visibility': False,\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c4590b-layer18',\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': 'b8cc403be27e475ca93db04a34845e89',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q3_1: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q3_1',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8',\n", + " 'visibility': False},\n", " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c397dc-layer17',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q3_1',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7',\n", + " 'visibility': False}],\n", " 'listMode': 'hide-children',\n", " 'opacity': 1,\n", - " 'title': 'April - June',\n", + " 'title': 'July',\n", " 'visibility': False,\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c397dc-layer17',\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q2: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", + " 'visibility': False},\n", " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c2a1a7-layer16',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", + " 'visibility': False}],\n", " 'listMode': 'hide-children',\n", " 'opacity': 1,\n", - " 'title': 'January - March',\n", - " 'visibility': True,\n", + " 'title': 'April - June',\n", + " 'visibility': False,\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c2a1a7-layer16',\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '16c9bf0e374443d394f0b77980171499',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q1: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q1',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2',\n", + " 'visibility': True},\n", " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q1',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1',\n", + " 'visibility': True}],\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'January - March',\n", + " 'visibility': True,\n", " 'visibilityMode': 'inherited'}]" ] }, @@ -1176,7 +997,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -1185,23 +1006,23 @@ "text": [ "Typhoon Paths :: ArcGISFeatureLayer\n", "October - December :: GroupLayer\n", - "\tLabels Q4 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17\n", - "\tTyphoons Q4 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16\n", + "\tLabels Q4 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17\n", + "\tTyphoons Q4 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16\n", "September :: GroupLayer\n", - "\tLabels Q3_3 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14\n", - "\tTyphoons Q3_3 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13\n", + "\tLabels Q3_3 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14\n", + "\tTyphoons Q3_3 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13\n", "August :: GroupLayer\n", - "\tLabels Q3_2 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11\n", - "\tTyphoons Q3_2 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10\n", + "\tLabels Q3_2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11\n", + "\tTyphoons Q3_2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10\n", "July :: GroupLayer\n", - "\tLabels Q3_1 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8\n", - "\tTyphoons Q3_1 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7\n", + "\tLabels Q3_1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8\n", + "\tTyphoons Q3_1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7\n", "April - June :: GroupLayer\n", - "\tLabels Q2 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5\n", - "\tTyphoons Q2 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4\n", + "\tLabels Q2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5\n", + "\tTyphoons Q2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4\n", "January - March :: GroupLayer\n", - "\tLabels Q1 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2\n", - "\tTyphoons Q1 :: https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1\n" + "\tLabels Q1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2\n", + "\tTyphoons Q1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1\n" ] } ], @@ -1222,83 +1043,67 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': '14a37c397dc-layer17',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'April - June',\n", - " 'visibility': False,\n", + " 'layerType': 'GroupLayer',\n", " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'minSize': 25,\n", - " 'axis': 'all',\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", + " 'symbol': {'name': 'Pushpin 1',\n", " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'all',\n", + " 'minSize': 25,\n", + " 'type': 'sizeInfo',\n", + " 'valueUnit': 'unknown'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", " 'showLabels': True,\n", - " 'popupInfo': {'showAttachments': True,\n", - " 'title': 'Labels Q2: {name}',\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name', 'label': 'name', 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True,\n", - " 'format': {'digitSeparator': True, 'places': 0}}],\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'attachments'}]}},\n", + " 'title': 'Labels Q2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", + " 'visibility': False},\n", " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", + " 'label': '',\n", + " 'symbol': {'name': 'Standing Cylinder',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'type': 'styleSymbolReference'},\n", + " 'type': 'simple',\n", + " 'visualVariables': [{'axis': 'height',\n", " 'field': 'windspeed',\n", - " 'minSize': 1,\n", " 'minDataValue': 0.0001,\n", - " 'axis': 'height'},\n", - " {'type': 'sizeInfo',\n", + " 'minSize': 1,\n", + " 'type': 'sizeInfo'},\n", + " {'axis': 'widthAndDepth',\n", " 'minSize': 100000,\n", - " 'axis': 'widthAndDepth',\n", + " 'type': 'sizeInfo',\n", " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'value': 920, 'color': [245, 0, 0, 255]},\n", - " {'value': 1014, 'color': [245, 245, 0, 255]}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'showAttachments': False,\n", - " 'title': '{typhoon}',\n", - " 'popupElements': [{'type': 'fields'}, {'type': 'media'}],\n", - " 'mediaInfos': [{'type': 'image',\n", + " {'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", + " {'color': [245, 245, 0], 'value': 1014}],\n", + " 'type': 'colorInfo'}]}},\n", + " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'opacity': 1,\n", + " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'value': {'sourceURL': '{image}'}}]}}],\n", - " 'layerType': 'GroupLayer',\n", + " 'type': 'image',\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'},\n", + " 'title': 'Typhoons Q2',\n", + " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", + " 'visibility': False}],\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'April - June',\n", + " 'visibility': False,\n", " 'visibilityMode': 'inherited'}]" ] }, @@ -1314,8 +1119,13 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, "outputs": [], "source": [ "# Let us apply the changes to a new web scene object.\n", @@ -1337,7 +1147,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -1345,193 +1155,23 @@ "text/html": [ "
\n", "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas\n", - " \n", - "
This web map provides a detailed vector basemap for the world featuring a neutral background style with minimal colors, labels, and features.Web Map by esri\n", - "
Last Modified: February 29, 2024\n", - "
0 comments, 6999552 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['basemap', 'esri_basemap', 'vector', 'canvas', 'dark', 'esri_vector', 'v2', 'general availability', 'basemaps', 'wma', 'World_Basemap_v2']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Human Geography Dark Map\n", - " \n", - "
This web map consists of vector tile layers that form a detailed basemap for the world, featuring a dark monochromatic style with content adjusted to support Human Geography information.Web Map by esri\n", - "
Last Modified: February 29, 2024\n", - "
2 comments, 255878218 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['vector', 'basemap', 'esri_vector', 'style', 'sample', 'web map', 'human geography', 'dark', 'human geography dark', 'esri_basemap', 'Andrew Skinner', 'creative']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " NZ Dark Grey Canvas (Classic) (Mature Support) \n", - " \n", - "
NZ Canvas Dark Basemap draws attention to your thematic content by providing a dark, neutral background with minimal colors, labels, and features. Web Map by eaglegis\n", - "
Last Modified: September 29, 2022\n", - "
0 comments, 1245055 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['NZ', 'New zealand', 'Basemap', 'Dark Canvas', 'Basemaps', 'esri_basemap', 'parcels', 'urban', 'public', 'Dark Grey', 'Canvas', 'New Zealand', 'Kiwi', 'Map', 'Background', 'Layer', 'topographic', 'topography', 'content', 'living atlas', 'basemaps', 'esri_basemaps', 'detailed', 'digital map', 'KiwiRail', 'Linz', 'NZTA', 'current', 'open data', 'data sets', 'mature support', 'deprecated', 'eaglegis']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas (WGS84)\n", - " \n", - "
This web map provides a detailed vector basemap for the world featuring a neutral background style with minimal colors, labels, and features. It uses WGS84 Geographic, version 2 tiling scheme.Web Map by esri\n", - "
Last Modified: February 29, 2024\n", - "
2 comments, 745017 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['esri_basemap', 'esri_vector', 'GCS', 'WGS84', 'canvas', 'dark gray', 'v2', 'general availability', 'basemaps', 'World_Basemap_GCS_v2', 'vector', 'basemap', 'gcs', 'wkid 4326']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Enhanced Contrast Dark Map\n", - " \n", - "
This web map provides a detailed vector basemap for the world with dark colors and enhanced contrast that aim to meet the standards for WCAG and US Government Section 508 compliance. The map detail is built with higher contrast and color-vision-deficient-safe colors.Web Map by esri_vector\n", - "
Last Modified: February 29, 2024\n", - "
0 comments, 87230682 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['enhanced contrast', 'dark', 'night', 'base', 'basemap', 'basemaps', 'esri_vector', 'Esri Vector Basemaps', 'esri_basemap', 'esri_basemaps', 'WGAC', 'Section 508', 'accessibility', 'reference', 'web map', 'wma', 'World_Basemap_v2', 'general availability']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - " \n", "\n", "
\n", - " Navigation (Dark)\n", + " Dark Gray Canvas\n", " \n", - "
This web map provides a detailed basemap for the world featuring a 'dark mode' version of the Navigation vector basemap, using the same content.Web Map by esri\n", - "
Last Modified: February 29, 2024\n", - "
0 comments, 256254519 views\n", + "
Web Map by arcgis_python\n", + "
Last Modified: July 05, 2017\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1541,7 +1181,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['v2', 'wma', 'World_Basemap_v2', 'global', 'basemaps', 'vector', 'basemap', 'esri_basemap', 'general availability', 'navigation', 'dark', 'dark mode', 'esri_vector']\n" + "['basemap', 'esri_basemap', 'vector', 'canvas', 'dark', 'esri_vector']\n" ] }, { @@ -1549,23 +1189,23 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " Starter Map - Vector Layers (Dark Gray)\n", + " Dark Gray Canvas\n", " \n", - "
Web Map by cgis.script.runner\n", - "
Last Modified: September 13, 2021\n", - "
0 comments, 792 views\n", + "
Web Map by arcgis_python\n", + "
Last Modified: July 05, 2017\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1575,7 +1215,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['Portland', 'PDX', 'Basemap', 'Gray', 'Dark']\n" + "['neutral', 'subdued', 'canvas', 'shaded', 'world', 'Global', 'basemap', 'current', 'gray', 'grey', 'dark gray', 'dark grey', 'esri', 'esri_basemap']\n" ] }, { @@ -1583,23 +1223,23 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " Dark Gray Canvas\n", + " Dark Gray Canvas (WGS84)\n", " \n", - "
This map is designed to focus attention on your thematic content by providing a neutral background with minimal colors, labels, and features.Web Map by esri_en\n", - "
Last Modified: October 25, 2023\n", - "
1 comments, 338665885 views\n", + "
Web Map by arcgis_python\n", + "
Last Modified: July 05, 2017\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1609,7 +1249,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['basemap', 'vector']\n" + "['basemap', 'esri_basemap', 'world', 'global', 'AFA250_base', 'maps', 'WGS84', 'GCS', 'wkid 4326', 'vector', 'esri_vector', 'dark', 'canvas', 'v1', 'general availability']\n" ] }, { @@ -1617,17 +1257,17 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Dark Gray Canvas\n", + " Dark Gray Canvas\n", " \n", - "
This item is in mature support.Web Map by esri_en\n", - "
Last Modified: September 21, 2021\n", - "
6 comments, 74630977 views\n", + "
This map is designed to focus attention on your thematic content by providing a neutral background with minimal colors, labels, and features.Web Map by esri_en\n", + "
Last Modified: October 29, 2014\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " @@ -1651,23 +1291,23 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " Dark Gray Canvas\n", + " Dark Gray Canvas\n", " \n", - "
Dark gray canvas basemap from esriWeb Map by karmstrongSEEM\n", - "
Last Modified: January 13, 2015\n", - "
0 comments, 271 views\n", + "
Ova mapa dizajnirana je tako da usmeri pažnju na tematski sadržaj vaše mape pomoću neutralne pozadine sa minimalnim brojem boja, oznaka i funkcija.Web Map by esri_sr\n", + "
Last Modified: April 28, 2016\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1677,7 +1317,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['basemap']\n" + "['pozadinska mapa']\n" ] } ], @@ -1698,81 +1338,66 @@ }, { "cell_type": "code", - "execution_count": 45, - "metadata": { - "scrolled": true - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{\n", - " \"baseMapLayers\": [\n", - " {\n", - " \"opacity\": 1,\n", - " \"title\": \"World Dark Gray Canvas Base\",\n", - " \"url\": \"https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer\",\n", - " \"visibility\": true,\n", - " \"layerType\": \"ArcGISTiledMapServiceLayer\",\n", - " \"id\": \"layer0\"\n", - " },\n", - " {\n", - " \"opacity\": 1,\n", - " \"title\": \"World Dark Gray Reference\",\n", - " \"url\": \"https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Reference/MapServer\",\n", - " \"visibility\": true,\n", - " \"layerType\": \"ArcGISTiledMapServiceLayer\",\n", - " \"isReference\": true,\n", - " \"id\": \"World_Dark_Gray_Reference_8618\"\n", - " }\n", - " ],\n", - " \"title\": \"Dark Gray Canvas\"\n", - "}" + "{'baseMapLayers': [{'id': 'layer0',\n", + " 'layerType': 'ArcGISTiledMapServiceLayer',\n", + " 'opacity': 1,\n", + " 'title': 'World_Dark_Gray_Base',\n", + " 'url': 'https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer',\n", + " 'visibility': True},\n", + " {'id': 'World_Dark_Gray_Reference_8618',\n", + " 'isReference': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer',\n", + " 'opacity': 1,\n", + " 'title': 'World_Dark_Gray_Reference',\n", + " 'url': 'https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Reference/MapServer',\n", + " 'visibility': True}],\n", + " 'title': 'Dark Gray Canvas'}" ] }, - "execution_count": 45, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dark_basemap_item = basemap_search[-2]\n", - "dark_basemap_obj = WebMap(dark_basemap_item)\n", - "dark_basemap_obj.basemap" + "dark_basemap_item = basemap_search[1]\n", + "dark_basemap_obj = arcgis.layers.WebMap(dark_basemap_item)\n", + "dark_basemap_obj['baseMap']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Now let us explore what the `baseMap` dictionary of the **web scene** looks like." + "Now let us explore how the `baseMap` dictionary of the **web scene** looks like." ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'layerType': 'ArcGISTiledMapServiceLayer',\n", + " 'url': 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer'}],\n", + " 'elevationLayers': [{'id': 'globalElevation_0',\n", + " 'layerType': 'ArcGISTiledElevationServiceLayer',\n", + " 'url': 'http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer'}],\n", " 'id': 'basemap',\n", " 'title': 'Topographic',\n", - " 'elevationLayers': [{'id': 'globalElevation_0',\n", - " 'listMode': 'hide',\n", - " 'title': 'Terrain3D',\n", - " 'url': 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledElevationServiceLayer'}]}" + " 'visibility': True}" ] }, - "execution_count": 46, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -1785,16 +1410,22 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To get the desired basemap, we need to update the `url` key-value pair of the web scene's `baseMap` dictionary. Here we will pick the first layer of the dark basemap web map." + "To get the desired basemap, we need to update the only `url` key-value pair of the web scene's `baseMap` dictionary. Here we will only pick the first layer of the dark basemap web map." ] }, { "cell_type": "code", - "execution_count": 47, - "metadata": {}, + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, "outputs": [], "source": [ - "new_web_scene_obj['baseMap']['baseMapLayers'][0]['url'] = dark_basemap_obj.basemap['baseMapLayers'][0]['url']" + "new_web_scene_obj['baseMap']['baseMapLayers'][0]['url'] = \\\n", + "dark_basemap_obj['baseMap']['baseMapLayers'][0]['url']" ] }, { @@ -1806,7 +1437,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -1814,16 +1445,16 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " Toprical Cyclones - Summer\n", + " Toprical Cyclones - Summer\n", " \n", - "
Subset of Western Pacific Typhoons (2005) published by esri_3dWeb Scene by arcgis_python\n", - "
Last Modified: April 15, 2024\n", + "
Subset of Western Pacific Typhoons (2005) published by arcgis_pythonWeb Scene by arcgis_python\n", + "
Last Modified: July 05, 2017\n", "
0 comments, 0 views\n", "
\n", "
\n", @@ -1833,7 +1464,7 @@ "" ] }, - "execution_count": 48, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -1860,26 +1491,26 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 54, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "new_item.share(True)\n", - "new_web_scene_obj = WebScene(new_item)\n", + "new_web_scene_obj = arcgis.layers.WebScene(new_item)\n", "new_web_scene_obj" ] }, @@ -1894,7 +1525,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -1919,8 +1550,13 @@ }, { "cell_type": "code", - "execution_count": 52, - "metadata": {}, + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, "outputs": [], "source": [ "for layer in new_web_scene_obj['operationalLayers']:\n", @@ -1936,19 +1572,19 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 55, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -1962,7 +1598,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Summary\n", + "# Summary\n", "In this sample, we observed how to consume web maps, web scenes and how to update them. During this process, the sample showed how to read a web feature layers, how to use geocoding to get co-ordinates of a point of interest, how to modify the map widget using code, how to make copy of an existing item into your account, how to look for basemaps and finally, how to update layer properties within a web scene." ] } @@ -1988,7 +1624,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9" + "version": "3.11.0" }, "toc": { "base_numbering": 1, @@ -2005,5 +1641,5 @@ } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } From bd71cf7073530476b15622a0eba6ebcba676ac2b Mon Sep 17 00:00:00 2001 From: Tarun Kukreja Date: Thu, 5 Sep 2024 17:17:49 -0700 Subject: [PATCH 2/4] scene currently failing --- .../using_and_updating_GIS_content.ipynb | 1002 +++++++++++++++-- 1 file changed, 923 insertions(+), 79 deletions(-) diff --git a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb index 22fe68d8db..e628c422cd 100644 --- a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb +++ b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb @@ -8,7 +8,7 @@ "\n", "The GIS is a warehouse of geographic content and services. Arcgis includes several classes to make use of these content, publish new items and update the them when needed. This sample on updating the content of web maps and web scenes will demonstrate the following\n", " * **Replace web layers** of a web map. For instance, you can use this to update a web map when the services it points to were deleted. The sample shows how to read a web feature layer as a **FeatureService** object and inspect its properties.\n", - " * **Drive the map widget by code**. In addition to displaying the interactive map widget, you can also set it to load at a particular extent. This is great for presentation purposes. During this process, the sample shows how to create and use a **MapView** object and a **Geocoder** object.\n", + " * **Drive the map widget by code**. In addition to displaying the interactive map widget, you can also set it to load at a particular extent. This is great for presentation purposes. During this process, the sample shows how to create and use a **Map** object and a **Geocoder** object.\n", " * Make a **copy of a public web scene** item into your contents and then update it.\n", " * Edit the list of layers to remove unnecessary ones.\n", " * **Replace the basemap** of the web scene. In this step the sample shows how to search for **groups** and query the member items.\n", @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -37,9 +37,18 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\tar12555\\AppData\\Roaming\\Python\\Python311\\site-packages\\dask\\dataframe\\_pyarrow_compat.py:23: UserWarning: You are using pyarrow version 11.0.0 which is known to be insecure. See https://www.cve.org/CVERecord?id=CVE-2023-47248 for further details. Please upgrade to pyarrow>=14.0.1 or install pyarrow-hotfix to patch your current version.\n", + " warnings.warn(\n" + ] + } + ], "source": [ "from arcgis.gis import GIS, ItemTypeEnum\n", "from arcgis.map import Map, Scene\n", @@ -78,8 +87,7 @@ "This is a multi-line comment.\n", "You can write multiple lines here.\n", "1 -> content.add -> folder.add\n", - "2 -> added check to csv_item.publish\n", - "3 -> removed Fix errors in web map section since it is working fine\n", + "2 -> added check to csv_item.publish, if the item is already published then don't publish it\n", "\"\"\"" ] }, @@ -92,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -102,9 +110,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "folder = gis.content.folders.get()\n", "folder.add(item_properties = item_prop, file=my_csv)" @@ -112,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -128,59 +147,97 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " USA Capitals spreadsheet for WebMap\n", + " \n", + "

CSV by arcgis_python\n", + "
Last Modified: September 04, 2024\n", + "
0 comments, 1 views\n", + "
\n", + "
\n", + " " + ], "text/plain": [ - "[,\n", - " ]" + "" ] }, - "execution_count": 73, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' \", outside_org=True)" + "csv_item" ] }, { "cell_type": "code", - "execution_count": 69, - "metadata": {}, - "outputs": [], - "source": [ - "feature_service_list = gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' , type:Feature Service\")" - ] - }, - { - "cell_type": "code", - "execution_count": 70, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[,\n", + " ]" ] }, - "execution_count": 70, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "feature_service_list" + "gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' \", outside_org=True)" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 20, "metadata": {}, "outputs": [], + "source": [ + "feature_service_list = gis.content.search(\"title:'USA Capitals spreadsheet for WebMap' , type:Feature Service\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "ename": "Exception", + "evalue": "{'code': 400, 'message': 'Error retrieving file from https://geosaurus.maps.arcgis.com/sharing/rest/content/items/ad01d79b28e54686a8d07663c1025977/data?token=mzFcMRqhxzPAoRJavp2MJuBY9Q0Vqdd2gdDxyjRB9OKwgCpRGZ2LJtgash32d_hiR3sBuxcn-RviD5WugDBSh4qVhNAX_XIq23lhlS2hOvJojSTvcONyzxJebN42Qyfpf-kY_qt11sWeaSwZIpXFJQQC5iz_izEjQ0zi74pnm8M.', 'requestId': '', 'traceId': '00000000000000000000000000000000'}", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[23], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m feature_service_list:\n\u001b[1;32m----> 3\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m \u001b[43mcsv_item\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpublish\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 5\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m feature_service_list[\u001b[38;5;241m0\u001b[39m]\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:16239\u001b[0m, in \u001b[0;36mItem.publish\u001b[1;34m(self, publish_parameters, address_fields, output_type, overwrite, file_type, build_initial_cache, item_id, geocode_service, future)\u001b[0m\n\u001b[0;32m 16237\u001b[0m tp\u001b[38;5;241m.\u001b[39mshutdown(wait\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 16238\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m future \u001b[38;5;241m==\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m> 16239\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjob\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 16240\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m job\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\_base.py:449\u001b[0m, in \u001b[0;36mFuture.result\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m 447\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[0;32m 448\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[1;32m--> 449\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 451\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_condition\u001b[38;5;241m.\u001b[39mwait(timeout)\n\u001b[0;32m 453\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;129;01min\u001b[39;00m [CANCELLED, CANCELLED_AND_NOTIFIED]:\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\_base.py:401\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[0;32m 400\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 401\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[0;32m 402\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 403\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[0;32m 404\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:16338\u001b[0m, in \u001b[0;36mItem._publish\u001b[1;34m(self, publish_parameters, address_fields, output_type, overwrite, file_type, build_initial_cache, item_id, geocode_service)\u001b[0m\n\u001b[0;32m 16330\u001b[0m publish_parameters \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m 16331\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhasStaticData\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 16332\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39msplitext(\u001b[38;5;28mself\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m])[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[0;32m 16333\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmaxRecordCount\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;241m2000\u001b[39m,\n\u001b[0;32m 16334\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlayerInfo\u001b[39m\u001b[38;5;124m\"\u001b[39m: {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcapabilities\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mQuery\u001b[39m\u001b[38;5;124m\"\u001b[39m},\n\u001b[0;32m 16335\u001b[0m }\n\u001b[0;32m 16337\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m fileType \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcsv\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mexcel\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m overwrite:\n\u001b[1;32m> 16338\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_gis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43manalyze\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 16339\u001b[0m \u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16340\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfileType\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16341\u001b[0m \u001b[43m \u001b[49m\u001b[43mgeocoding_service\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgeocode_service\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16342\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 16343\u001b[0m publish_parameters \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpublishParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 16344\u001b[0m service_name \u001b[38;5;241m=\u001b[39m re\u001b[38;5;241m.\u001b[39msub(\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mW_]+\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mself\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtitle\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:7070\u001b[0m, in \u001b[0;36mContentManager.analyze\u001b[1;34m(self, url, item, file_path, text, file_type, source_locale, geocoding_service, location_type, source_country, country_hint, enable_global_geocoding)\u001b[0m\n\u001b[0;32m 7067\u001b[0m gis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_gis\n\u001b[0;32m 7068\u001b[0m params[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manalyzeParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mdumps(params[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manalyzeParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m-> 7070\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msurl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpostdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfiles\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfiles\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1502\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m return_raw_response:\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:961\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 959\u001b[0m data \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mloads(data)\n\u001b[0;32m 960\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data \u001b[38;5;129;01mand\u001b[39;00m ignore_error_key \u001b[38;5;241m==\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m--> 961\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 962\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 963\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "\u001b[1;31mException\u001b[0m: {'code': 400, 'message': 'Error retrieving file from https://geosaurus.maps.arcgis.com/sharing/rest/content/items/ad01d79b28e54686a8d07663c1025977/data?token=mzFcMRqhxzPAoRJavp2MJuBY9Q0Vqdd2gdDxyjRB9OKwgCpRGZ2LJtgash32d_hiR3sBuxcn-RviD5WugDBSh4qVhNAX_XIq23lhlS2hOvJojSTvcONyzxJebN42Qyfpf-kY_qt11sWeaSwZIpXFJQQC5iz_izEjQ0zi74pnm8M.', 'requestId': '', 'traceId': '00000000000000000000000000000000'}" + ] + } + ], "source": [ "capitals_item = None\n", "if not feature_service_list:\n", @@ -234,27 +291,6 @@ "### Create WebMap, Add Layer, and Save" ] }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 59, @@ -379,7 +415,7 @@ "source": [ "# re-publish so we can find it again\n", "new_capitals = csv_item.publish()\n", - "new_capitals" + "new_capitals " ] }, { @@ -392,14 +428,13 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[,\n", - " ]" + "[]" ] }, "metadata": {}, @@ -420,33 +455,31 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "wm_item = search_result[0]\n", - "\n", - "\n", "web_map_obj = Map(wm_item)" ] }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f83996dc834b4418880574adee372f01", + "model_id": "2466c362f50347aeb9c95c385c99a074", "version_major": 2, "version_minor": 1 }, "text/plain": [ - "Map(extent={'xmin': -14954681.929724608, 'ymin': 3341779.8113346146, 'xmax': -12529809.39213255, 'ymax': 51799…" + "Map(extent={'spatialReference': {'latestWkid': 3857, 'wkid': 102100}, 'xmax': -12529809.39213255, 'xmin': -149…" ] }, - "execution_count": 81, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -456,6 +489,71 @@ "web_map_obj" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fix errors in web map\n", + "The widget loads an empty web map with just a basemap. Let us investigate the contents of the web map to determine the issue. You can query the layers in the web map using the layers property" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "ename": "Exception", + "evalue": "Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18821\u001b[0m, in \u001b[0;36m_GISResource._hydrate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18820\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m> 18821\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_refresh\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m HTTPError \u001b[38;5;28;01mas\u001b[39;00m httperror: \u001b[38;5;66;03m# service maybe down\u001b[39;00m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18795\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18794\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18795\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[0;32m 18797\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties \u001b[38;5;241m=\u001b[39m _mixins\u001b[38;5;241m.\u001b[39mPropertyMap(dictdata)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18784\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18783\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18784\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 18785\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\n\u001b[0;32m 18786\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# , token=self._lazy_token)\u001b[39;00m\n\u001b[0;32m 18787\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:979\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 978\u001b[0m errorcode \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m--> 979\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_json_error\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43merror\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merrorcode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1002\u001b[0m, in \u001b[0;36mConnection._handle_json_error\u001b[1;34m(self, error, errorcode)\u001b[0m\n\u001b[0;32m 1001\u001b[0m errormessage \u001b[38;5;241m=\u001b[39m errormessage \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m(Error Code: \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mstr\u001b[39m(errorcode) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1002\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(errormessage)\n", + "\u001b[1;31mException\u001b[0m: Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mweb_map_obj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;241m.\u001b[39mlayers\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\map_widget.py:475\u001b[0m, in \u001b[0;36mMap.content\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 469\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 470\u001b[0m \u001b[38;5;124;03mReturns a MapContent object that can be used to access the layers and tables\u001b[39;00m\n\u001b[0;32m 471\u001b[0m \u001b[38;5;124;03min the map. This is useful for adding, updating, getting, and removing content\u001b[39;00m\n\u001b[0;32m 472\u001b[0m \u001b[38;5;124;03mfrom the Map.\u001b[39;00m\n\u001b[0;32m 473\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 474\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 475\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content \u001b[38;5;241m=\u001b[39m \u001b[43mMapContent\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 476\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\map_widget.py:1569\u001b[0m, in \u001b[0;36mMapContent.__init__\u001b[1;34m(self, webmap)\u001b[0m\n\u001b[0;32m 1565\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper \u001b[38;5;241m=\u001b[39m webmap\u001b[38;5;241m.\u001b[39m_helper\n\u001b[0;32m 1567\u001b[0m \u001b[38;5;66;03m# Initialize layer list\u001b[39;00m\n\u001b[0;32m 1568\u001b[0m \u001b[38;5;66;03m# list to be added/removed to when performing operations\u001b[39;00m\n\u001b[1;32m-> 1569\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_helper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_layers\u001b[49m\n\u001b[0;32m 1571\u001b[0m \u001b[38;5;66;03m# Initialize tables list\u001b[39;00m\n\u001b[0;32m 1572\u001b[0m \u001b[38;5;66;03m# list to be added/removed to when performing operations\u001b[39;00m\n\u001b[0;32m 1573\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtables \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_tables\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_utils.py:299\u001b[0m, in \u001b[0;36m_HelperMethods._layers\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 296\u001b[0m operational_layers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpydantic_class\u001b[38;5;241m.\u001b[39moperational_layers \u001b[38;5;129;01mor\u001b[39;00m []\n\u001b[0;32m 297\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m index, layer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(operational_layers):\n\u001b[0;32m 298\u001b[0m \u001b[38;5;66;03m# index needed when dealing with group layers\u001b[39;00m\n\u001b[1;32m--> 299\u001b[0m l \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_infer_layer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 300\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m l:\n\u001b[0;32m 301\u001b[0m layers\u001b[38;5;241m.\u001b[39mappend(l)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_utils.py:332\u001b[0m, in \u001b[0;36m_HelperMethods._infer_layer\u001b[1;34m(self, layer, index)\u001b[0m\n\u001b[0;32m 329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m layer_class(layer_url, gis\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_source\u001b[38;5;241m.\u001b[39m_gis)\n\u001b[0;32m 331\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m layer_url:\n\u001b[1;32m--> 332\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43marcgis_layers\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mService\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer_url\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_source\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_gis\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 333\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m item_id:\n\u001b[0;32m 334\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\layers\\_service_factory\\_layerfactory.py:300\u001b[0m, in \u001b[0;36mServiceFactory.__call__\u001b[1;34m(cls, url_or_item, server, initialize)\u001b[0m\n\u001b[0;32m 298\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m base_name\u001b[38;5;241m.\u001b[39mlower() \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfeatureserver\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 299\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m hasLayer:\n\u001b[1;32m--> 300\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mFeatureServiceLayer\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 301\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 302\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m FeatureLayerCollection(url\u001b[38;5;241m=\u001b[39murl, gis\u001b[38;5;241m=\u001b[39mserver)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\layers\\_service_factory\\_layerfactory.py:154\u001b[0m, in \u001b[0;36m_FeatureServiceLayerFactory.__call__\u001b[1;34m(cls, url, gis)\u001b[0m\n\u001b[0;32m 152\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mcls\u001b[39m, url, gis\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 153\u001b[0m lyr \u001b[38;5;241m=\u001b[39m Layer(url\u001b[38;5;241m=\u001b[39murl, gis\u001b[38;5;241m=\u001b[39mgis)\n\u001b[1;32m--> 154\u001b[0m props \u001b[38;5;241m=\u001b[39m \u001b[43mlyr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\n\u001b[0;32m 155\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m props[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFeature Layer\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCatalog Layer\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[0;32m 156\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m FeatureLayer(url, gis\u001b[38;5;241m=\u001b[39mgis)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18807\u001b[0m, in \u001b[0;36m_GISResource.properties\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18805\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties\n\u001b[0;32m 18806\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18807\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_hydrate\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18808\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18844\u001b[0m, in \u001b[0;36m_GISResource._hydrate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18841\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 18842\u001b[0m \u001b[38;5;66;03m# try as a public server\u001b[39;00m\n\u001b[0;32m 18843\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_token \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m> 18844\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_refresh\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18846\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m HTTPError \u001b[38;5;28;01mas\u001b[39;00m httperror:\n\u001b[0;32m 18847\u001b[0m _log\u001b[38;5;241m.\u001b[39merror(httperror)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18795\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18793\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_con\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39murl, params)\n\u001b[0;32m 18794\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18795\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[0;32m 18797\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties \u001b[38;5;241m=\u001b[39m _mixins\u001b[38;5;241m.\u001b[39mPropertyMap(dictdata)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18784\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18778\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_con\u001b[38;5;241m.\u001b[39mpost(\n\u001b[0;32m 18779\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39murl,\n\u001b[0;32m 18780\u001b[0m params,\n\u001b[0;32m 18781\u001b[0m timeout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;66;03m# token=self._lazy_token,\u001b[39;00m\n\u001b[0;32m 18782\u001b[0m )\n\u001b[0;32m 18783\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18784\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 18785\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\n\u001b[0;32m 18786\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# , token=self._lazy_token)\u001b[39;00m\n\u001b[0;32m 18787\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 18788\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(e, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmsg\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m e\u001b[38;5;241m.\u001b[39mmsg \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMethod Not Allowed\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1502\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m return_raw_response:\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:979\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n\u001b[0;32m 978\u001b[0m errorcode \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m--> 979\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_json_error\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43merror\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merrorcode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n\u001b[0;32m 981\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1002\u001b[0m, in \u001b[0;36mConnection._handle_json_error\u001b[1;34m(self, error, errorcode)\u001b[0m\n\u001b[0;32m 999\u001b[0m \u001b[38;5;66;03m# _log.error(errordetail)\u001b[39;00m\n\u001b[0;32m 1001\u001b[0m errormessage \u001b[38;5;241m=\u001b[39m errormessage \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m(Error Code: \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mstr\u001b[39m(errorcode) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1002\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(errormessage)\n", + "\u001b[1;31mException\u001b[0m: Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)" + ] + } + ], + "source": [ + "web_map_obj.content.layers" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -518,7 +616,14 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -526,33 +631,33 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " Western Pacific Typhoons (2005)\n", + " Tarun Copy of Western Pacific Typhoons (2005) by esri_3d\n", " \n", - "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by esri_3d\n", - "
Last Modified: May 01, 2020\n", - "
1 comments, 21732 views\n", + "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by tkukreja_geosaurus\n", + "
Last Modified: September 05, 2024\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 85, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "search_result = gis.content.search('title:Western Pacific Typhoons (2005)', \n", - " item_type = 'Web Scene', outside_org = True)\n", + "search_result = gis.content.search('title:Tarun Copy of Western Pacific Typhoons (2005) by esri_3d', \n", + " item_type = 'Web Scene', )\n", "search_result[0]" ] }, @@ -565,21 +670,760 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'operationalLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoon Paths',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/18',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'minScale': 120000000,\n", + " 'maxScale': 0,\n", + " 'elevationInfo': {'mode': 'onTheGround'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'LineSymbol3D',\n", + " 'symbolLayers': [{'type': 'Line',\n", + " 'material': {'color': [0, 169, 230]},\n", + " 'size': 5}]}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'text',\n", + " 'text': \"

Typhoon {name}

Started: {datedescription}

\"}],\n", + " 'description': \"

Typhoon {name}

Started: {datedescription}

\",\n", + " 'title': '{name}'}},\n", + " {'id': '14a37c86f84-layer21',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'October - December',\n", + " 'visibility': False,\n", + " 'layers': [{'id': '7a24e304d2474d7eb29a712c95202140',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q4',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q4: {name}'}},\n", + " {'id': '10944e27c9f04bc39b5821c0046523a5',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q4',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c7f247-layer20',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'September',\n", + " 'visibility': False,\n", + " 'layers': [{'id': '90eba5af0b084c569a55ebc9b3bfc21e',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q3_3',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q3_3: {name}'}},\n", + " {'id': '341d7b380907439990e4c238147b46ce',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q3_3',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c78bc8-layer19',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'August',\n", + " 'visibility': False,\n", + " 'layers': [{'id': '6e54f2736388480ab0a214cb468d48f9',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q3_2',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q3_2: {name}'}},\n", + " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q3_2',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c4590b-layer18',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'July',\n", + " 'visibility': False,\n", + " 'layers': [{'id': 'b8cc403be27e475ca93db04a34845e89',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q3_1',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q3_1: {name}'}},\n", + " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q3_1',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c397dc-layer17',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'April - June',\n", + " 'visibility': False,\n", + " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q2',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q2: {name}'}},\n", + " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q2',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", + " 'visibility': False,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'},\n", + " {'id': '14a37c2a1a7-layer16',\n", + " 'listMode': 'hide-children',\n", + " 'opacity': 1,\n", + " 'title': 'January - March',\n", + " 'visibility': True,\n", + " 'layers': [{'id': '16c9bf0e374443d394f0b77980171499',\n", + " 'opacity': 1,\n", + " 'title': 'Labels Q1',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'axis': 'all',\n", + " 'minSize': 25,\n", + " 'valueUnit': 'unknown'}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriIconsStyle',\n", + " 'name': 'Pushpin 1'}}}},\n", + " 'showLabels': True,\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'attachments', 'displayType': 'auto'}],\n", + " 'showAttachments': True,\n", + " 'fieldInfos': [{'fieldName': 'typhoonid',\n", + " 'isEditable': True,\n", + " 'label': 'typhoonid',\n", + " 'visible': True},\n", + " {'fieldName': 'name',\n", + " 'isEditable': True,\n", + " 'label': 'name',\n", + " 'visible': True},\n", + " {'fieldName': 'datedescription',\n", + " 'isEditable': True,\n", + " 'label': 'datedescription',\n", + " 'visible': True},\n", + " {'fieldName': 'ORIG_FID',\n", + " 'format': {'digitSeparator': True, 'places': 0},\n", + " 'isEditable': True,\n", + " 'label': 'ORIG_FID',\n", + " 'visible': True}],\n", + " 'title': 'Labels Q1: {name}'}},\n", + " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c',\n", + " 'opacity': 1,\n", + " 'title': 'Typhoons Q1',\n", + " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISFeatureLayer',\n", + " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", + " 'drawingInfo': {'renderer': {'type': 'simple',\n", + " 'visualVariables': [{'type': 'sizeInfo',\n", + " 'field': 'windspeed',\n", + " 'axis': 'height',\n", + " 'minDataValue': 0.0001,\n", + " 'minSize': 1},\n", + " {'type': 'sizeInfo',\n", + " 'axis': 'widthAndDepth',\n", + " 'minSize': 100000,\n", + " 'valueUnit': 'meters'},\n", + " {'type': 'colorInfo',\n", + " 'field': 'airpressure',\n", + " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", + " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", + " 'description': '',\n", + " 'label': '',\n", + " 'symbol': {'type': 'styleSymbolReference',\n", + " 'styleName': 'EsriThematicShapesStyle',\n", + " 'name': 'Standing Cylinder'}}}},\n", + " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", + " {'type': 'media',\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}]}],\n", + " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", + " 'title': \"

{typhoonclass} {typhoon}

\",\n", + " 'type': 'image',\n", + " 'refreshInterval': 0,\n", + " 'value': {'sourceURL': '{image}'}}],\n", + " 'title': '{typhoon}'}}],\n", + " 'layerType': 'GroupLayer',\n", + " 'visibilityMode': 'inherited'}],\n", + " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'opacity': 1,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'id': 'basemap',\n", + " 'title': 'Topographic',\n", + " 'elevationLayers': [{'id': 'globalElevation_0',\n", + " 'listMode': 'hide',\n", + " 'title': 'Terrain3D',\n", + " 'url': 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledElevationServiceLayer'}]},\n", + " 'ground': {'layers': [{'id': 'globalElevation_0',\n", + " 'listMode': 'hide',\n", + " 'title': 'Terrain3D',\n", + " 'url': 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledElevationServiceLayer'}],\n", + " 'transparency': 0,\n", + " 'navigationConstraint': {'type': 'stayAbove'}},\n", + " 'heightModelInfo': {'heightModel': 'gravity_related_height',\n", + " 'heightUnit': 'meter'},\n", + " 'version': '1.34',\n", + " 'authoringApp': 'WebSceneViewer',\n", + " 'authoringAppVersion': '2024.2.0',\n", + " 'presentation': {'slides': [{'id': 'slide_1',\n", + " 'title': {'text': 'Start of 2005'},\n", + " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", + " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", + " 'x': 16338046.55787945,\n", + " 'y': -255903.18543654634,\n", + " 'z': 6324439.902154693},\n", + " 'heading': 351.1964858600443,\n", + " 'tilt': 17.653475866991755}},\n", + " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'opacity': 1,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'id': 'basemap',\n", + " 'title': 'Topographic'},\n", + " 'ground': {'transparency': 0},\n", + " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", + " {'id': '14a37c2a1a7-layer16'},\n", + " {'id': '16c9bf0e374443d394f0b77980171499'},\n", + " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c'},\n", + " {'id': 'globalElevation_0'}],\n", + " 'environment': {'lighting': {'type': 'sun'},\n", + " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", + " {'id': 'slide_2',\n", + " 'title': {'text': 'August origins'},\n", + " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", + " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", + " 'x': 18034663.07613952,\n", + " 'y': 544179.4588633721,\n", + " 'z': 2819426.3450047094},\n", + " 'heading': 315.5348196196585,\n", + " 'tilt': 37.399468879606104}},\n", + " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'opacity': 1,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'id': 'basemap',\n", + " 'title': 'Topographic'},\n", + " 'ground': {'transparency': 0},\n", + " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", + " {'id': '14a37c78bc8-layer19'},\n", + " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", + " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", + " {'id': 'globalElevation_0'}],\n", + " 'environment': {'lighting': {'type': 'sun'},\n", + " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", + " {'id': 'slide_3',\n", + " 'title': {'text': 'August in Japan'},\n", + " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", + " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", + " 'x': 14317116.922236785,\n", + " 'y': 3162810.5410621683,\n", + " 'z': 1942131.4690581001},\n", + " 'heading': 41.187868723912416,\n", + " 'tilt': 38.22074788332464}},\n", + " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'opacity': 1,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'id': 'basemap',\n", + " 'title': 'Topographic'},\n", + " 'ground': {'transparency': 0},\n", + " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", + " {'id': '14a37c78bc8-layer19'},\n", + " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", + " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", + " {'id': 'globalElevation_0'}],\n", + " 'environment': {'lighting': {'type': 'sun'},\n", + " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", + " {'id': 'slide_4',\n", + " 'title': {'text': 'All Typhoons'},\n", + " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", + " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", + " 'x': 15204174.902554411,\n", + " 'y': 1790041.1372453775,\n", + " 'z': 10970890.001691733},\n", + " 'heading': 3.086488857999165,\n", + " 'tilt': 4.939849335423939}},\n", + " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'opacity': 1,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True,\n", + " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", + " 'id': 'basemap',\n", + " 'title': 'Topographic'},\n", + " 'ground': {'transparency': 0},\n", + " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", + " {'id': '14a37c86f84-layer21'},\n", + " {'id': '7a24e304d2474d7eb29a712c95202140'},\n", + " {'id': '10944e27c9f04bc39b5821c0046523a5'},\n", + " {'id': '14a37c7f247-layer20'},\n", + " {'id': '90eba5af0b084c569a55ebc9b3bfc21e'},\n", + " {'id': '341d7b380907439990e4c238147b46ce'},\n", + " {'id': '14a37c78bc8-layer19'},\n", + " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", + " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", + " {'id': '14a37c4590b-layer18'},\n", + " {'id': 'b8cc403be27e475ca93db04a34845e89'},\n", + " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c'},\n", + " {'id': '14a37c397dc-layer17'},\n", + " {'id': '56803f3d64184140950f0ef1256a0603'},\n", + " {'id': '72668fcc8a904bd6a1444bef2e72f420'},\n", + " {'id': '14a37c2a1a7-layer16'},\n", + " {'id': '16c9bf0e374443d394f0b77980171499'},\n", + " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c'},\n", + " {'id': 'globalElevation_0'}],\n", + " 'environment': {'lighting': {'type': 'sun'},\n", + " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}}]},\n", + " 'initialState': {'environment': {'lighting': {'type': 'sun',\n", + " 'datetime': 1489543976000,\n", + " 'displayUTCOffset': 10},\n", + " 'atmosphereEnabled': True,\n", + " 'starsEnabled': True,\n", + " 'weather': {'type': 'sunny', 'cloudCover': 0}},\n", + " 'viewpoint': {'camera': {'position': {'spatialReference': {'latestWkid': 3857,\n", + " 'wkid': 102100},\n", + " 'x': 16338046.55787945,\n", + " 'y': -255903.18543654715,\n", + " 'z': 6324439.902154693},\n", + " 'heading': 351.19648581329864,\n", + " 'tilt': 17.65347586839879}}},\n", + " 'spatialReference': {'latestWkid': 3857, 'wkid': 102100},\n", + " 'viewingMode': 'global'}" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "web_scene_item.get_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, "metadata": {}, "outputs": [ { - "ename": "ValidationError", - "evalue": "1 validation error for Webscene\nground\n Field required [type=missing, input_value={'operationalLayers': [{'...'viewingMode': 'global'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.5/v/missing", + "ename": "ValueError", + "evalue": "Can't clean for JSON: ", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mValidationError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[89], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:99\u001b[0m, in \u001b[0;36mjson_packer\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 98\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 99\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdumps\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 100\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 101\u001b[0m \u001b[43m \u001b[49m\u001b[43mdefault\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson_default\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 102\u001b[0m \u001b[43m \u001b[49m\u001b[43mensure_ascii\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 103\u001b[0m \u001b[43m \u001b[49m\u001b[43mallow_nan\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 104\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 105\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mTypeError\u001b[39;00m, \u001b[38;5;167;01mValueError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 106\u001b[0m \u001b[38;5;66;03m# Fallback to trying to clean the json before serializing\u001b[39;00m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\__init__.py:238\u001b[0m, in \u001b[0;36mdumps\u001b[1;34m(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)\u001b[0m\n\u001b[0;32m 233\u001b[0m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;241m=\u001b[39m JSONEncoder\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m 235\u001b[0m \u001b[43m \u001b[49m\u001b[43mskipkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mskipkeys\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mensure_ascii\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mensure_ascii\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 236\u001b[0m \u001b[43m \u001b[49m\u001b[43mcheck_circular\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcheck_circular\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mallow_nan\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mallow_nan\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 237\u001b[0m \u001b[43m \u001b[49m\u001b[43mseparators\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseparators\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdefault\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m--> 238\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\encoder.py:200\u001b[0m, in \u001b[0;36mJSONEncoder.encode\u001b[1;34m(self, o)\u001b[0m\n\u001b[0;32m 197\u001b[0m \u001b[38;5;66;03m# This doesn't pass the iterator directly to ''.join() because the\u001b[39;00m\n\u001b[0;32m 198\u001b[0m \u001b[38;5;66;03m# exceptions aren't as detailed. The list call should be roughly\u001b[39;00m\n\u001b[0;32m 199\u001b[0m \u001b[38;5;66;03m# equivalent to the PySequence_Fast that ''.join() would do.\u001b[39;00m\n\u001b[1;32m--> 200\u001b[0m chunks \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miterencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mo\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m_one_shot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[0;32m 201\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(chunks, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\encoder.py:258\u001b[0m, in \u001b[0;36mJSONEncoder.iterencode\u001b[1;34m(self, o, _one_shot)\u001b[0m\n\u001b[0;32m 254\u001b[0m _iterencode \u001b[38;5;241m=\u001b[39m _make_iterencode(\n\u001b[0;32m 255\u001b[0m markers, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault, _encoder, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindent, floatstr,\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkey_separator, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mitem_separator, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msort_keys,\n\u001b[0;32m 257\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mskipkeys, _one_shot)\n\u001b[1;32m--> 258\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_iterencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mo\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:126\u001b[0m, in \u001b[0;36mjson_default\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mfloat\u001b[39m(obj)\n\u001b[1;32m--> 126\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%r\u001b[39;00m\u001b[38;5;124m is not JSON serializable\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m obj)\n", + "\u001b[1;31mTypeError\u001b[0m: is not JSON serializable", + "\nDuring handling of the above exception, another exception occurred:\n", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[27], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:254\u001b[0m, in \u001b[0;36mScene.__init__\u001b[1;34m(self, location, item, gis, **kwargs)\u001b[0m\n\u001b[0;32m 250\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_setup_gis_properties(gis)\n\u001b[0;32m 252\u001b[0m \u001b[38;5;66;03m# Set up the scene that will be used\u001b[39;00m\n\u001b[0;32m 253\u001b[0m \u001b[38;5;66;03m# either existing or new instance\u001b[39;00m\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_setup_webscene_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 256\u001b[0m \u001b[38;5;66;03m# Assign the definition to helper class\u001b[39;00m\n\u001b[0;32m 257\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_set_widget_definition(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:295\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 292\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mversion\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;66;03m# webscene spec will update this\u001b[39;00m\n\u001b[0;32m 294\u001b[0m \u001b[38;5;66;03m# Use pydantic dataclass from webscene spec generation\u001b[39;00m\n\u001b[1;32m--> 295\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m \u001b[43mws\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mWebscene\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 296\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 297\u001b[0m \u001b[38;5;66;03m# New Scene\u001b[39;00m\n\u001b[0;32m 298\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mitem \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\pydantic\\main.py:164\u001b[0m, in \u001b[0;36mBaseModel.__init__\u001b[1;34m(__pydantic_self__, **data)\u001b[0m\n\u001b[0;32m 162\u001b[0m \u001b[38;5;66;03m# `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks\u001b[39;00m\n\u001b[0;32m 163\u001b[0m __tracebackhide__ \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 164\u001b[0m \u001b[43m__pydantic_self__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__pydantic_validator__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalidate_python\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mself_instance\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m__pydantic_self__\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[1;31mValidationError\u001b[0m: 1 validation error for Webscene\nground\n Field required [type=missing, input_value={'operationalLayers': [{'...'viewingMode': 'global'}, input_type=dict]\n For further information visit https://errors.pydantic.dev/2.5/v/missing" + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:367\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 356\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m ws\u001b[38;5;241m.\u001b[39mWebscene(\n\u001b[0;32m 357\u001b[0m operationalLayers\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 358\u001b[0m baseMap\u001b[38;5;241m=\u001b[39mbasemap,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 364\u001b[0m initialState\u001b[38;5;241m=\u001b[39minitial_state,\n\u001b[0;32m 365\u001b[0m )\n\u001b[0;32m 366\u001b[0m \u001b[38;5;66;03m# Set so widget gets initialized with webscene dict\u001b[39;00m\n\u001b[1;32m--> 367\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_source\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:388\u001b[0m, in \u001b[0;36mScene._update_source\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 387\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_update_source\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m--> 388\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_webscene_dict\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene\u001b[38;5;241m.\u001b[39mdict()\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:718\u001b[0m, in \u001b[0;36mTraitType.__set__\u001b[1;34m(self, obj, value)\u001b[0m\n\u001b[0;32m 716\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TraitError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mThe \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m trait is read-only.\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m%\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname)\n\u001b[0;32m 717\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 718\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:707\u001b[0m, in \u001b[0;36mTraitType.set\u001b[1;34m(self, obj, value)\u001b[0m\n\u001b[0;32m 703\u001b[0m silent \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 704\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m silent \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m 705\u001b[0m \u001b[38;5;66;03m# we explicitly compare silent to True just in case the equality\u001b[39;00m\n\u001b[0;32m 706\u001b[0m \u001b[38;5;66;03m# comparison above returns something other than True/False\u001b[39;00m\n\u001b[1;32m--> 707\u001b[0m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_notify_trait\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mold_value\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_value\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:1515\u001b[0m, in \u001b[0;36mHasTraits._notify_trait\u001b[1;34m(self, name, old_value, new_value)\u001b[0m\n\u001b[0;32m 1514\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_notify_trait\u001b[39m(\u001b[38;5;28mself\u001b[39m, name: \u001b[38;5;28mstr\u001b[39m, old_value: t\u001b[38;5;241m.\u001b[39mAny, new_value: t\u001b[38;5;241m.\u001b[39mAny) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 1515\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnotify_change\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1516\u001b[0m \u001b[43m \u001b[49m\u001b[43mBunch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1517\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1518\u001b[0m \u001b[43m \u001b[49m\u001b[43mold\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mold_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1519\u001b[0m \u001b[43m \u001b[49m\u001b[43mnew\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnew_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1520\u001b[0m \u001b[43m \u001b[49m\u001b[43mowner\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1521\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mchange\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1522\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1523\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:700\u001b[0m, in \u001b[0;36mWidget.notify_change\u001b[1;34m(self, change)\u001b[0m\n\u001b[0;32m 696\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mkernel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 697\u001b[0m \u001b[38;5;66;03m# Make sure this isn't information that the front-end just sent us.\u001b[39;00m\n\u001b[0;32m 698\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkeys \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_should_send_property(name, \u001b[38;5;28mgetattr\u001b[39m(\u001b[38;5;28mself\u001b[39m, name)):\n\u001b[0;32m 699\u001b[0m \u001b[38;5;66;03m# Send new state to front-end\u001b[39;00m\n\u001b[1;32m--> 700\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend_state\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 701\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mnotify_change(change)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:586\u001b[0m, in \u001b[0;36mWidget.send_state\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 584\u001b[0m state, buffer_paths, buffers \u001b[38;5;241m=\u001b[39m _remove_buffers(state)\n\u001b[0;32m 585\u001b[0m msg \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmethod\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupdate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mstate\u001b[39m\u001b[38;5;124m'\u001b[39m: state, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbuffer_paths\u001b[39m\u001b[38;5;124m'\u001b[39m: buffer_paths}\n\u001b[1;32m--> 586\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:825\u001b[0m, in \u001b[0;36mWidget._send\u001b[1;34m(self, msg, buffers)\u001b[0m\n\u001b[0;32m 823\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Sends a message to the model in the front-end.\"\"\"\u001b[39;00m\n\u001b[0;32m 824\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm\u001b[38;5;241m.\u001b[39mkernel \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mkernel\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m--> 825\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcomm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\comm\\base_comm.py:141\u001b[0m, in \u001b[0;36mBaseComm.send\u001b[1;34m(self, data, metadata, buffers)\u001b[0m\n\u001b[0;32m 137\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msend\u001b[39m(\n\u001b[0;32m 138\u001b[0m \u001b[38;5;28mself\u001b[39m, data: MaybeDict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, metadata: MaybeDict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, buffers: BuffersType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 139\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 140\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Send a message to the frontend-side version of this comm\"\"\"\u001b[39;00m\n\u001b[1;32m--> 141\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpublish_msg\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 142\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcomm_msg\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 143\u001b[0m \u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 144\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 145\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 146\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\ipykernel\\comm\\comm.py:37\u001b[0m, in \u001b[0;36mBaseComm.publish_msg\u001b[1;34m(self, msg_type, data, metadata, buffers, **keys)\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkernel \u001b[38;5;241m=\u001b[39m Kernel\u001b[38;5;241m.\u001b[39minstance()\n\u001b[0;32m 36\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkernel\u001b[38;5;241m.\u001b[39msession \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m---> 37\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miopub_socket\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mmsg_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmetadata\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 42\u001b[0m \u001b[43m \u001b[49m\u001b[43mparent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_parent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 43\u001b[0m \u001b[43m \u001b[49m\u001b[43mident\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtopic\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 44\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 45\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:848\u001b[0m, in \u001b[0;36mSession.send\u001b[1;34m(self, stream, msg_or_type, content, parent, ident, buffers, track, header, metadata)\u001b[0m\n\u001b[0;32m 846\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madapt_version:\n\u001b[0;32m 847\u001b[0m msg \u001b[38;5;241m=\u001b[39m adapt(msg, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madapt_version)\n\u001b[1;32m--> 848\u001b[0m to_send \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mserialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mident\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 849\u001b[0m to_send\u001b[38;5;241m.\u001b[39mextend(buffers)\n\u001b[0;32m 850\u001b[0m longest \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m([\u001b[38;5;28mlen\u001b[39m(s) \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m to_send])\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:718\u001b[0m, in \u001b[0;36mSession.serialize\u001b[1;34m(self, msg, ident)\u001b[0m\n\u001b[0;32m 716\u001b[0m content \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnone\n\u001b[0;32m 717\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(content, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m--> 718\u001b[0m content \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpack\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 719\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(content, \u001b[38;5;28mbytes\u001b[39m):\n\u001b[0;32m 720\u001b[0m \u001b[38;5;66;03m# content is already packed, as in a relayed message\u001b[39;00m\n\u001b[0;32m 721\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:108\u001b[0m, in \u001b[0;36mjson_packer\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 99\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m json\u001b[38;5;241m.\u001b[39mdumps(\n\u001b[0;32m 100\u001b[0m obj,\n\u001b[0;32m 101\u001b[0m default\u001b[38;5;241m=\u001b[39mjson_default,\n\u001b[0;32m 102\u001b[0m ensure_ascii\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 103\u001b[0m allow_nan\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 104\u001b[0m )\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 105\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mTypeError\u001b[39;00m, \u001b[38;5;167;01mValueError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 106\u001b[0m \u001b[38;5;66;03m# Fallback to trying to clean the json before serializing\u001b[39;00m\n\u001b[0;32m 107\u001b[0m packed \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mdumps(\n\u001b[1;32m--> 108\u001b[0m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m,\n\u001b[0;32m 109\u001b[0m default\u001b[38;5;241m=\u001b[39mjson_default,\n\u001b[0;32m 110\u001b[0m ensure_ascii\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 111\u001b[0m allow_nan\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 112\u001b[0m )\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 114\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[0;32m 115\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMessage serialization failed with:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 116\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSupporting this message is deprecated in jupyter-client 7, please make \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 117\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msure your message is JSON-compliant\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 118\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m,\n\u001b[0;32m 119\u001b[0m )\n\u001b[0;32m 121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m packed\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + " \u001b[1;31m[... skipping similar frames: json_clean at line 185 (1 times)]\u001b[0m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m obj]\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + " \u001b[1;31m[... skipping similar frames: json_clean at line 185 (2 times)]\u001b[0m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m obj]\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:192\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 189\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mstrftime(ISO8601)\n\u001b[0;32m 191\u001b[0m \u001b[38;5;66;03m# we don't understand it, it's probably an unserializable object\u001b[39;00m\n\u001b[1;32m--> 192\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCan\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt clean for JSON: \u001b[39m\u001b[38;5;132;01m%r\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m obj)\n", + "\u001b[1;31mValueError\u001b[0m: Can't clean for JSON: " ] } ], From b53c6787b0d5d98e41915d0d4ac9cc21005e2225 Mon Sep 17 00:00:00 2001 From: Tarun Kukreja Date: Thu, 24 Oct 2024 17:44:39 -0700 Subject: [PATCH 3/4] web map working fine --- .../using_and_updating_GIS_content.ipynb | 483 ++++++++---------- 1 file changed, 227 insertions(+), 256 deletions(-) diff --git a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb index e628c422cd..2cf4545d97 100644 --- a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb +++ b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb @@ -27,28 +27,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import warnings\n", - "warnings.filterwarnings(\"ignore\")" + "warnings.filterwarnings(\"ignore\")\n", + "import arcgis" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\tar12555\\AppData\\Roaming\\Python\\Python311\\site-packages\\dask\\dataframe\\_pyarrow_compat.py:23: UserWarning: You are using pyarrow version 11.0.0 which is known to be insecure. See https://www.cve.org/CVERecord?id=CVE-2023-47248 for further details. Please upgrade to pyarrow>=14.0.1 or install pyarrow-hotfix to patch your current version.\n", - " warnings.warn(\n" - ] - } - ], + "outputs": [], "source": [ "from arcgis.gis import GIS, ItemTypeEnum\n", "from arcgis.map import Map, Scene\n", @@ -57,38 +49,32 @@ "gis = GIS(profile=\"your_online_profile\")" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Creating a web map and feature layer\n", - "We will will create a feature layer and a web map. We will then delete the feature layer and re-publish. This will change the service and leave us with a broken layer inside our map, don't worry we will fix this in the next steps." - ] - }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'\\nThis is a multi-line comment.\\nYou can write multiple lines here.\\n1 -> content.add -> folder.add\\n'" + "'2.4.1'" ] }, - "execution_count": 6, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "#### Changes\n", - "\"\"\"\n", - "This is a multi-line comment.\n", - "You can write multiple lines here.\n", - "1 -> content.add -> folder.add\n", - "2 -> added check to csv_item.publish, if the item is already published then don't publish it\n", - "\"\"\"" + "arcgis.__version__" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Creating a web map and feature layer\n", + "We will will create a feature layer and a web map. We will then delete the feature layer and re-publish. This will change the service and leave us with a broken layer inside our map, don't worry we will fix this in the next steps." ] }, { @@ -100,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -110,16 +96,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 15, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -131,7 +117,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -147,7 +133,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -155,17 +141,17 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " USA Capitals spreadsheet for WebMap\n", + " USA Capitals spreadsheet for WebMap\n", " \n", "

CSV by arcgis_python\n", - "
Last Modified: September 04, 2024\n", - "
0 comments, 1 views\n", + "
Last Modified: October 24, 2024\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " @@ -174,7 +160,7 @@ "" ] }, - "execution_count": 18, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -185,17 +171,17 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[,\n", - " ]" + " ]" ] }, - "execution_count": 24, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -206,7 +192,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -215,29 +201,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 35, "metadata": {}, - "outputs": [ - { - "ename": "Exception", - "evalue": "{'code': 400, 'message': 'Error retrieving file from https://geosaurus.maps.arcgis.com/sharing/rest/content/items/ad01d79b28e54686a8d07663c1025977/data?token=mzFcMRqhxzPAoRJavp2MJuBY9Q0Vqdd2gdDxyjRB9OKwgCpRGZ2LJtgash32d_hiR3sBuxcn-RviD5WugDBSh4qVhNAX_XIq23lhlS2hOvJojSTvcONyzxJebN42Qyfpf-kY_qt11sWeaSwZIpXFJQQC5iz_izEjQ0zi74pnm8M.', 'requestId': '', 'traceId': '00000000000000000000000000000000'}", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[23], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m feature_service_list:\n\u001b[1;32m----> 3\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m \u001b[43mcsv_item\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpublish\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 5\u001b[0m capitals_item \u001b[38;5;241m=\u001b[39m feature_service_list[\u001b[38;5;241m0\u001b[39m]\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:16239\u001b[0m, in \u001b[0;36mItem.publish\u001b[1;34m(self, publish_parameters, address_fields, output_type, overwrite, file_type, build_initial_cache, item_id, geocode_service, future)\u001b[0m\n\u001b[0;32m 16237\u001b[0m tp\u001b[38;5;241m.\u001b[39mshutdown(wait\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 16238\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m future \u001b[38;5;241m==\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m> 16239\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjob\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 16240\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m job\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\_base.py:449\u001b[0m, in \u001b[0;36mFuture.result\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m 447\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[0;32m 448\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[1;32m--> 449\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 451\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_condition\u001b[38;5;241m.\u001b[39mwait(timeout)\n\u001b[0;32m 453\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;129;01min\u001b[39;00m [CANCELLED, CANCELLED_AND_NOTIFIED]:\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\_base.py:401\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 399\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[0;32m 400\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 401\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[0;32m 402\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 403\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[0;32m 404\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\concurrent\\futures\\thread.py:58\u001b[0m, in \u001b[0;36m_WorkItem.run\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 55\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m 57\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 58\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 59\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 60\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfuture\u001b[38;5;241m.\u001b[39mset_exception(exc)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:16338\u001b[0m, in \u001b[0;36mItem._publish\u001b[1;34m(self, publish_parameters, address_fields, output_type, overwrite, file_type, build_initial_cache, item_id, geocode_service)\u001b[0m\n\u001b[0;32m 16330\u001b[0m publish_parameters \u001b[38;5;241m=\u001b[39m {\n\u001b[0;32m 16331\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhasStaticData\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[0;32m 16332\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m: os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39msplitext(\u001b[38;5;28mself\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m])[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[0;32m 16333\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmaxRecordCount\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;241m2000\u001b[39m,\n\u001b[0;32m 16334\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlayerInfo\u001b[39m\u001b[38;5;124m\"\u001b[39m: {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcapabilities\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mQuery\u001b[39m\u001b[38;5;124m\"\u001b[39m},\n\u001b[0;32m 16335\u001b[0m }\n\u001b[0;32m 16337\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m fileType \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcsv\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mexcel\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m overwrite:\n\u001b[1;32m> 16338\u001b[0m res \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_gis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43manalyze\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 16339\u001b[0m \u001b[43m \u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16340\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfileType\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16341\u001b[0m \u001b[43m \u001b[49m\u001b[43mgeocoding_service\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgeocode_service\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 16342\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 16343\u001b[0m publish_parameters \u001b[38;5;241m=\u001b[39m res[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpublishParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 16344\u001b[0m service_name \u001b[38;5;241m=\u001b[39m re\u001b[38;5;241m.\u001b[39msub(\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124mW_]+\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mself\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtitle\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:7070\u001b[0m, in \u001b[0;36mContentManager.analyze\u001b[1;34m(self, url, item, file_path, text, file_type, source_locale, geocoding_service, location_type, source_country, country_hint, enable_global_geocoding)\u001b[0m\n\u001b[0;32m 7067\u001b[0m gis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_gis\n\u001b[0;32m 7068\u001b[0m params[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manalyzeParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mdumps(params[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124manalyzeParameters\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m-> 7070\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msurl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpostdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfiles\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfiles\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1502\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m return_raw_response:\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:961\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 959\u001b[0m data \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mloads(data)\n\u001b[0;32m 960\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data \u001b[38;5;129;01mand\u001b[39;00m ignore_error_key \u001b[38;5;241m==\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m:\n\u001b[1;32m--> 961\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 962\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 963\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", - "\u001b[1;31mException\u001b[0m: {'code': 400, 'message': 'Error retrieving file from https://geosaurus.maps.arcgis.com/sharing/rest/content/items/ad01d79b28e54686a8d07663c1025977/data?token=mzFcMRqhxzPAoRJavp2MJuBY9Q0Vqdd2gdDxyjRB9OKwgCpRGZ2LJtgash32d_hiR3sBuxcn-RviD5WugDBSh4qVhNAX_XIq23lhlS2hOvJojSTvcONyzxJebN42Qyfpf-kY_qt11sWeaSwZIpXFJQQC5iz_izEjQ0zi74pnm8M.', 'requestId': '', 'traceId': '00000000000000000000000000000000'}" - ] - } - ], + "outputs": [], "source": [ "capitals_item = None\n", "if not feature_service_list:\n", @@ -248,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -256,17 +222,17 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " USA Capitals spreadsheet for WebMap\n", + " USA Capitals spreadsheet for WebMap\n", " \n", "

Feature Layer Collection by arcgis_python\n", - "
Last Modified: April 11, 2024\n", - "
0 comments, 20 views\n", + "
Last Modified: October 24, 2024\n", + "
0 comments, 0 views\n", "
\n", "
\n", " " @@ -275,7 +241,7 @@ "" ] }, - "execution_count": 66, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -293,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -301,16 +267,16 @@ "text/html": [ "
\n", "
\n", - " \n", + " \n", " \n", " \n", "
\n", "\n", "
\n", - " USA Capitals WebMap\n", + " USA Capitals WebMap\n", " \n", "
A webmap that contains USA capitals as a feature layer.
Web Map by arcgis_python\n", - "
Last Modified: September 04, 2024\n", + "
Last Modified: October 24, 2024\n", "
0 comments, 0 views\n", "
\n", "
\n", @@ -320,7 +286,7 @@ "" ] }, - "execution_count": 59, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -342,34 +308,16 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " USA Capitals spreadsheet for WebMap\n", - " \n", - "

Feature Layer Collection by arcgis_python\n", - "
Last Modified: April 11, 2024\n", - "
0 comments, 20 views\n", - "
\n", - "
\n", - " " - ], "text/plain": [ - "" + "True" ] }, - "execution_count": 68, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -378,114 +326,141 @@ "capitals_item.delete(permanent=True)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using and updating a web map\n", + "We will search for that web map that has broken layers, render it on the notebook and update it." + ] + }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 39, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " USA Capitals spreadsheet for WebMap\n", - " \n", - "

Feature Layer Collection by arcgis_python\n", - "
Last Modified: September 04, 2024\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], "text/plain": [ - "" + "[]" ] }, - "execution_count": 74, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "# re-publish so we can find it again\n", - "new_capitals = csv_item.publish()\n", - "new_capitals " + "search_result = gis.content.search(\"title:USA Capitals WebMap\", item_type = \"Web Map\")\n", + "display(search_result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "# Using and updating a web map\n", - "We will search for that web map that has broken layers, render it on the notebook and update it." + "Read the web map as a `WebMap` object" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "wm_item = search_result[0]\n", + "web_map_obj = Map(wm_item)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "['satellite',\n", + " 'hybrid',\n", + " 'terrain',\n", + " 'oceans',\n", + " 'osm',\n", + " 'dark-gray-vector',\n", + " 'gray-vector',\n", + " 'streets-vector',\n", + " 'topo-vector',\n", + " 'streets-night-vector',\n", + " 'streets-relief-vector',\n", + " 'streets-navigation-vector',\n", + " 'arcgis-imagery',\n", + " 'arcgis-imagery-standard',\n", + " 'arcgis-imagery-labels',\n", + " 'arcgis-light-gray',\n", + " 'arcgis-dark-gray',\n", + " 'arcgis-navigation',\n", + " 'arcgis-navigation-night',\n", + " 'arcgis-streets',\n", + " 'arcgis-streets-night',\n", + " 'arcgis-streets-relief',\n", + " 'arcgis-topographic',\n", + " 'arcgis-oceans',\n", + " 'osm-standard',\n", + " 'osm-standard-relief',\n", + " 'osm-streets',\n", + " 'osm-streets-relief',\n", + " 'osm-light-gray',\n", + " 'osm-dark-gray',\n", + " 'arcgis-terrain',\n", + " 'arcgis-community',\n", + " 'arcgis-charted-territory',\n", + " 'arcgis-colored-pencil',\n", + " 'arcgis-nova',\n", + " 'arcgis-modern-antique',\n", + " 'arcgis-midcentury',\n", + " 'arcgis-newspaper',\n", + " 'arcgis-hillshade-light',\n", + " 'arcgis-hillshade-dark',\n", + " 'arcgis-human-geography',\n", + " 'arcgis-human-geography-dark']" ] }, + "execution_count": 24, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "search_result = gis.content.search(\"title:USA Capitals WebMap\", item_type = \"Web Map\")\n", - "display(search_result)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Read the web map as a `WebMap` object" + "web_map_obj.basemap.basemaps" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ - "wm_item = search_result[0]\n", - "web_map_obj = Map(wm_item)" + "web_map_obj.basemap.basemap = 'topo-vector'" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 46, "metadata": {}, "outputs": [ { "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "2466c362f50347aeb9c95c385c99a074", - "version_major": 2, - "version_minor": 1 - }, + "text/html": [ + "" + ], "text/plain": [ - "Map(extent={'spatialReference': {'latestWkid': 3857, 'wkid': 102100}, 'xmax': -12529809.39213255, 'xmin': -149…" + "" ] }, - "execution_count": 12, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# display the web map obj in an interactive widget\n", "web_map_obj" ] }, @@ -499,93 +474,126 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 41, "metadata": {}, "outputs": [ { - "ename": "Exception", - "evalue": "Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18821\u001b[0m, in \u001b[0;36m_GISResource._hydrate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18820\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m> 18821\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_refresh\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m HTTPError \u001b[38;5;28;01mas\u001b[39;00m httperror: \u001b[38;5;66;03m# service maybe down\u001b[39;00m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18795\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18794\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18795\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[0;32m 18797\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties \u001b[38;5;241m=\u001b[39m _mixins\u001b[38;5;241m.\u001b[39mPropertyMap(dictdata)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18784\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18783\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18784\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 18785\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\n\u001b[0;32m 18786\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# , token=self._lazy_token)\u001b[39;00m\n\u001b[0;32m 18787\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:979\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 978\u001b[0m errorcode \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m--> 979\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_json_error\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43merror\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merrorcode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1002\u001b[0m, in \u001b[0;36mConnection._handle_json_error\u001b[1;34m(self, error, errorcode)\u001b[0m\n\u001b[0;32m 1001\u001b[0m errormessage \u001b[38;5;241m=\u001b[39m errormessage \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m(Error Code: \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mstr\u001b[39m(errorcode) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1002\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(errormessage)\n", - "\u001b[1;31mException\u001b[0m: Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mException\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mweb_map_obj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;241m.\u001b[39mlayers\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\map_widget.py:475\u001b[0m, in \u001b[0;36mMap.content\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 469\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 470\u001b[0m \u001b[38;5;124;03mReturns a MapContent object that can be used to access the layers and tables\u001b[39;00m\n\u001b[0;32m 471\u001b[0m \u001b[38;5;124;03min the map. This is useful for adding, updating, getting, and removing content\u001b[39;00m\n\u001b[0;32m 472\u001b[0m \u001b[38;5;124;03mfrom the Map.\u001b[39;00m\n\u001b[0;32m 473\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 474\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 475\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content \u001b[38;5;241m=\u001b[39m \u001b[43mMapContent\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 476\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_content\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\map_widget.py:1569\u001b[0m, in \u001b[0;36mMapContent.__init__\u001b[1;34m(self, webmap)\u001b[0m\n\u001b[0;32m 1565\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper \u001b[38;5;241m=\u001b[39m webmap\u001b[38;5;241m.\u001b[39m_helper\n\u001b[0;32m 1567\u001b[0m \u001b[38;5;66;03m# Initialize layer list\u001b[39;00m\n\u001b[0;32m 1568\u001b[0m \u001b[38;5;66;03m# list to be added/removed to when performing operations\u001b[39;00m\n\u001b[1;32m-> 1569\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlayers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_helper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_layers\u001b[49m\n\u001b[0;32m 1571\u001b[0m \u001b[38;5;66;03m# Initialize tables list\u001b[39;00m\n\u001b[0;32m 1572\u001b[0m \u001b[38;5;66;03m# list to be added/removed to when performing operations\u001b[39;00m\n\u001b[0;32m 1573\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtables \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_tables\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_utils.py:299\u001b[0m, in \u001b[0;36m_HelperMethods._layers\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 296\u001b[0m operational_layers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpydantic_class\u001b[38;5;241m.\u001b[39moperational_layers \u001b[38;5;129;01mor\u001b[39;00m []\n\u001b[0;32m 297\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m index, layer \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(operational_layers):\n\u001b[0;32m 298\u001b[0m \u001b[38;5;66;03m# index needed when dealing with group layers\u001b[39;00m\n\u001b[1;32m--> 299\u001b[0m l \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_infer_layer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 300\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m l:\n\u001b[0;32m 301\u001b[0m layers\u001b[38;5;241m.\u001b[39mappend(l)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_utils.py:332\u001b[0m, in \u001b[0;36m_HelperMethods._infer_layer\u001b[1;34m(self, layer, index)\u001b[0m\n\u001b[0;32m 329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m layer_class(layer_url, gis\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_source\u001b[38;5;241m.\u001b[39m_gis)\n\u001b[0;32m 331\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m layer_url:\n\u001b[1;32m--> 332\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43marcgis_layers\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mService\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlayer_url\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_source\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_gis\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 333\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m item_id:\n\u001b[0;32m 334\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\layers\\_service_factory\\_layerfactory.py:300\u001b[0m, in \u001b[0;36mServiceFactory.__call__\u001b[1;34m(cls, url_or_item, server, initialize)\u001b[0m\n\u001b[0;32m 298\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m base_name\u001b[38;5;241m.\u001b[39mlower() \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfeatureserver\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 299\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m hasLayer:\n\u001b[1;32m--> 300\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mFeatureServiceLayer\u001b[49m\u001b[43m(\u001b[49m\u001b[43murl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 301\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 302\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m FeatureLayerCollection(url\u001b[38;5;241m=\u001b[39murl, gis\u001b[38;5;241m=\u001b[39mserver)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\layers\\_service_factory\\_layerfactory.py:154\u001b[0m, in \u001b[0;36m_FeatureServiceLayerFactory.__call__\u001b[1;34m(cls, url, gis)\u001b[0m\n\u001b[0;32m 152\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__call__\u001b[39m(\u001b[38;5;28mcls\u001b[39m, url, gis\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 153\u001b[0m lyr \u001b[38;5;241m=\u001b[39m Layer(url\u001b[38;5;241m=\u001b[39murl, gis\u001b[38;5;241m=\u001b[39mgis)\n\u001b[1;32m--> 154\u001b[0m props \u001b[38;5;241m=\u001b[39m \u001b[43mlyr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mproperties\u001b[49m\n\u001b[0;32m 155\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m props[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtype\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;129;01min\u001b[39;00m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFeature Layer\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCatalog Layer\u001b[39m\u001b[38;5;124m\"\u001b[39m]:\n\u001b[0;32m 156\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m FeatureLayer(url, gis\u001b[38;5;241m=\u001b[39mgis)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18807\u001b[0m, in \u001b[0;36m_GISResource.properties\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18805\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties\n\u001b[0;32m 18806\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18807\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_hydrate\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18808\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18844\u001b[0m, in \u001b[0;36m_GISResource._hydrate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18841\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 18842\u001b[0m \u001b[38;5;66;03m# try as a public server\u001b[39;00m\n\u001b[0;32m 18843\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_token \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m> 18844\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_refresh\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 18846\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m HTTPError \u001b[38;5;28;01mas\u001b[39;00m httperror:\n\u001b[0;32m 18847\u001b[0m _log\u001b[38;5;241m.\u001b[39merror(httperror)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18795\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18793\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_con\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39murl, params)\n\u001b[0;32m 18794\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18795\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\u001b[0;32m 18797\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lazy_properties \u001b[38;5;241m=\u001b[39m _mixins\u001b[38;5;241m.\u001b[39mPropertyMap(dictdata)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\__init__.py:18784\u001b[0m, in \u001b[0;36m_GISResource._refresh\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 18778\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_con\u001b[38;5;241m.\u001b[39mpost(\n\u001b[0;32m 18779\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39murl,\n\u001b[0;32m 18780\u001b[0m params,\n\u001b[0;32m 18781\u001b[0m timeout\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;66;03m# token=self._lazy_token,\u001b[39;00m\n\u001b[0;32m 18782\u001b[0m )\n\u001b[0;32m 18783\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m> 18784\u001b[0m dictdata \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_con\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 18785\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\n\u001b[0;32m 18786\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# , token=self._lazy_token)\u001b[39;00m\n\u001b[0;32m 18787\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 18788\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(e, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmsg\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m e\u001b[38;5;241m.\u001b[39mmsg \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMethod Not Allowed\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1504\u001b[0m, in \u001b[0;36mConnection.post\u001b[1;34m(self, path, params, files, **kwargs)\u001b[0m\n\u001b[0;32m 1502\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m return_raw_response:\n\u001b[0;32m 1503\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp\n\u001b[1;32m-> 1504\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_response\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1505\u001b[0m \u001b[43m \u001b[49m\u001b[43mresp\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresp\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1506\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_path\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_path\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1507\u001b[0m \u001b[43m \u001b[49m\u001b[43mfile_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1508\u001b[0m \u001b[43m \u001b[49m\u001b[43mtry_json\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtry_json\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[43mforce_bytes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforce_bytes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1510\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:979\u001b[0m, in \u001b[0;36mConnection._handle_response\u001b[1;34m(self, resp, file_name, out_path, try_json, force_bytes, ignore_error_key)\u001b[0m\n\u001b[0;32m 977\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n\u001b[0;32m 978\u001b[0m errorcode \u001b[38;5;241m=\u001b[39m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcode\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01min\u001b[39;00m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merror\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m--> 979\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_handle_json_error\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43merror\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43merrorcode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m data\n\u001b[0;32m 981\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\gis\\_impl\\_con\\_connection.py:1002\u001b[0m, in \u001b[0;36mConnection._handle_json_error\u001b[1;34m(self, error, errorcode)\u001b[0m\n\u001b[0;32m 999\u001b[0m \u001b[38;5;66;03m# _log.error(errordetail)\u001b[39;00m\n\u001b[0;32m 1001\u001b[0m errormessage \u001b[38;5;241m=\u001b[39m errormessage \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m(Error Code: \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mstr\u001b[39m(errorcode) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1002\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m(errormessage)\n", - "\u001b[1;31mException\u001b[0m: Item does not exist or is inaccessible.\nItem does not exist or is inaccessible.\n(Error Code: 400)" - ] + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "web_map_obj.content.layers" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Update the web map\n", + "To update the web map, we call the `update()` method. You have the option to update the thumbnail or any other item properties at this time." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + " USA Capitals spreadsheet for WebMap\n", + " \n", + "

Feature Layer Collection by arcgis_python\n", + "
Last Modified: October 24, 2024\n", + "
0 comments, 0 views\n", + "
\n", + "
\n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# re-publish so we can find it again\n", + "new_capitals = csv_item.publish()\n", + "new_capitals " + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 44, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "web_map_obj.update(item_properties={'title':'USA Capitals - updated'},\n", + " thumbnail = \"./data/webmap_thumbnail.png\")" + ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Update the web map\n", - "To update the web map, we call the `update()` method. You have the option to update the thumbnail or any other item properties at this time." + "### Now we see that the web map is is rendering the layer properly after re-publishing the item" ] }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 47, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "" + ], "text/plain": [ - "True" + "" ] }, - "execution_count": 82, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "web_map_obj.update(item_properties={'title':'USA Capitals - updated'},\n", - " thumbnail = \"./data/webmap_thumbnail.png\")" + "web_map_obj" ] }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -594,16 +602,16 @@ "True" ] }, - "execution_count": 84, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Let's clean it up so we can always run this notebook again\n", - "wm_item.delete()\n", - "new_capitals.delete()\n", - "csv_item.delete()" + "wm_item.delete(permanent=True)\n", + "new_capitals.delete(permanent=True)\n", + "csv_item.delete(permanent=True)" ] }, { @@ -616,14 +624,7 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 26, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -641,7 +642,7 @@ " \n", "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by tkukreja_geosaurus\n", "
Last Modified: September 05, 2024\n", - "
0 comments, 0 views\n", + "
0 comments, 8 views\n", " \n", " \n", " " @@ -650,7 +651,7 @@ "" ] }, - "execution_count": 26, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -658,7 +659,8 @@ "source": [ "search_result = gis.content.search('title:Tarun Copy of Western Pacific Typhoons (2005) by esri_3d', \n", " item_type = 'Web Scene', )\n", - "search_result[0]" + "web_scene_item = search_result[0]\n", + "web_scene_item" ] }, { @@ -670,7 +672,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -1365,7 +1367,7 @@ " 'viewingMode': 'global'}" ] }, - "execution_count": 28, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -1376,54 +1378,23 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 19, "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "Can't clean for JSON: ", + "ename": "TypeError", + "evalue": "'MockValSer' object cannot be converted to 'SchemaSerializer'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:99\u001b[0m, in \u001b[0;36mjson_packer\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 98\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 99\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mjson\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdumps\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 100\u001b[0m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 101\u001b[0m \u001b[43m \u001b[49m\u001b[43mdefault\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson_default\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 102\u001b[0m \u001b[43m \u001b[49m\u001b[43mensure_ascii\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 103\u001b[0m \u001b[43m \u001b[49m\u001b[43mallow_nan\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 104\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 105\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mTypeError\u001b[39;00m, \u001b[38;5;167;01mValueError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 106\u001b[0m \u001b[38;5;66;03m# Fallback to trying to clean the json before serializing\u001b[39;00m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\__init__.py:238\u001b[0m, in \u001b[0;36mdumps\u001b[1;34m(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)\u001b[0m\n\u001b[0;32m 233\u001b[0m \u001b[38;5;28mcls\u001b[39m \u001b[38;5;241m=\u001b[39m JSONEncoder\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mcls\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m 235\u001b[0m \u001b[43m \u001b[49m\u001b[43mskipkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mskipkeys\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mensure_ascii\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mensure_ascii\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 236\u001b[0m \u001b[43m \u001b[49m\u001b[43mcheck_circular\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcheck_circular\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mallow_nan\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mallow_nan\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mindent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 237\u001b[0m \u001b[43m \u001b[49m\u001b[43mseparators\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mseparators\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdefault\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort_keys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort_keys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m--> 238\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\encoder.py:200\u001b[0m, in \u001b[0;36mJSONEncoder.encode\u001b[1;34m(self, o)\u001b[0m\n\u001b[0;32m 197\u001b[0m \u001b[38;5;66;03m# This doesn't pass the iterator directly to ''.join() because the\u001b[39;00m\n\u001b[0;32m 198\u001b[0m \u001b[38;5;66;03m# exceptions aren't as detailed. The list call should be roughly\u001b[39;00m\n\u001b[0;32m 199\u001b[0m \u001b[38;5;66;03m# equivalent to the PySequence_Fast that ''.join() would do.\u001b[39;00m\n\u001b[1;32m--> 200\u001b[0m chunks \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miterencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mo\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m_one_shot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[0;32m 201\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(chunks, (\u001b[38;5;28mlist\u001b[39m, \u001b[38;5;28mtuple\u001b[39m)):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\json\\encoder.py:258\u001b[0m, in \u001b[0;36mJSONEncoder.iterencode\u001b[1;34m(self, o, _one_shot)\u001b[0m\n\u001b[0;32m 254\u001b[0m _iterencode \u001b[38;5;241m=\u001b[39m _make_iterencode(\n\u001b[0;32m 255\u001b[0m markers, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault, _encoder, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mindent, floatstr,\n\u001b[0;32m 256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkey_separator, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mitem_separator, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msort_keys,\n\u001b[0;32m 257\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mskipkeys, _one_shot)\n\u001b[1;32m--> 258\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_iterencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43mo\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:126\u001b[0m, in \u001b[0;36mjson_default\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mfloat\u001b[39m(obj)\n\u001b[1;32m--> 126\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%r\u001b[39;00m\u001b[38;5;124m is not JSON serializable\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m obj)\n", - "\u001b[1;31mTypeError\u001b[0m: is not JSON serializable", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[27], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:254\u001b[0m, in \u001b[0;36mScene.__init__\u001b[1;34m(self, location, item, gis, **kwargs)\u001b[0m\n\u001b[0;32m 250\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_setup_gis_properties(gis)\n\u001b[0;32m 252\u001b[0m \u001b[38;5;66;03m# Set up the scene that will be used\u001b[39;00m\n\u001b[0;32m 253\u001b[0m \u001b[38;5;66;03m# either existing or new instance\u001b[39;00m\n\u001b[1;32m--> 254\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_setup_webscene_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 256\u001b[0m \u001b[38;5;66;03m# Assign the definition to helper class\u001b[39;00m\n\u001b[0;32m 257\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_set_widget_definition(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:367\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 356\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m ws\u001b[38;5;241m.\u001b[39mWebscene(\n\u001b[0;32m 357\u001b[0m operationalLayers\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 358\u001b[0m baseMap\u001b[38;5;241m=\u001b[39mbasemap,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 364\u001b[0m initialState\u001b[38;5;241m=\u001b[39minitial_state,\n\u001b[0;32m 365\u001b[0m )\n\u001b[0;32m 366\u001b[0m \u001b[38;5;66;03m# Set so widget gets initialized with webscene dict\u001b[39;00m\n\u001b[1;32m--> 367\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_source\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:388\u001b[0m, in \u001b[0;36mScene._update_source\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 387\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_update_source\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m--> 388\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_webscene_dict\u001b[49m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene\u001b[38;5;241m.\u001b[39mdict()\n", - "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:718\u001b[0m, in \u001b[0;36mTraitType.__set__\u001b[1;34m(self, obj, value)\u001b[0m\n\u001b[0;32m 716\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m TraitError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mThe \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m trait is read-only.\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m%\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mname)\n\u001b[0;32m 717\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m--> 718\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:707\u001b[0m, in \u001b[0;36mTraitType.set\u001b[1;34m(self, obj, value)\u001b[0m\n\u001b[0;32m 703\u001b[0m silent \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m 704\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m silent \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[0;32m 705\u001b[0m \u001b[38;5;66;03m# we explicitly compare silent to True just in case the equality\u001b[39;00m\n\u001b[0;32m 706\u001b[0m \u001b[38;5;66;03m# comparison above returns something other than True/False\u001b[39;00m\n\u001b[1;32m--> 707\u001b[0m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_notify_trait\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mold_value\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_value\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\traitlets\\traitlets.py:1515\u001b[0m, in \u001b[0;36mHasTraits._notify_trait\u001b[1;34m(self, name, old_value, new_value)\u001b[0m\n\u001b[0;32m 1514\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_notify_trait\u001b[39m(\u001b[38;5;28mself\u001b[39m, name: \u001b[38;5;28mstr\u001b[39m, old_value: t\u001b[38;5;241m.\u001b[39mAny, new_value: t\u001b[38;5;241m.\u001b[39mAny) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 1515\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnotify_change\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1516\u001b[0m \u001b[43m \u001b[49m\u001b[43mBunch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1517\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1518\u001b[0m \u001b[43m \u001b[49m\u001b[43mold\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mold_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1519\u001b[0m \u001b[43m \u001b[49m\u001b[43mnew\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnew_value\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1520\u001b[0m \u001b[43m \u001b[49m\u001b[43mowner\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1521\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mtype\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mchange\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1522\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1523\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:700\u001b[0m, in \u001b[0;36mWidget.notify_change\u001b[1;34m(self, change)\u001b[0m\n\u001b[0;32m 696\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mkernel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 697\u001b[0m \u001b[38;5;66;03m# Make sure this isn't information that the front-end just sent us.\u001b[39;00m\n\u001b[0;32m 698\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkeys \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_should_send_property(name, \u001b[38;5;28mgetattr\u001b[39m(\u001b[38;5;28mself\u001b[39m, name)):\n\u001b[0;32m 699\u001b[0m \u001b[38;5;66;03m# Send new state to front-end\u001b[39;00m\n\u001b[1;32m--> 700\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend_state\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 701\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mnotify_change(change)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:586\u001b[0m, in \u001b[0;36mWidget.send_state\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 584\u001b[0m state, buffer_paths, buffers \u001b[38;5;241m=\u001b[39m _remove_buffers(state)\n\u001b[0;32m 585\u001b[0m msg \u001b[38;5;241m=\u001b[39m {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmethod\u001b[39m\u001b[38;5;124m'\u001b[39m: \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mupdate\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mstate\u001b[39m\u001b[38;5;124m'\u001b[39m: state, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbuffer_paths\u001b[39m\u001b[38;5;124m'\u001b[39m: buffer_paths}\n\u001b[1;32m--> 586\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\ipywidgets\\widgets\\widget.py:825\u001b[0m, in \u001b[0;36mWidget._send\u001b[1;34m(self, msg, buffers)\u001b[0m\n\u001b[0;32m 823\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Sends a message to the model in the front-end.\"\"\"\u001b[39;00m\n\u001b[0;32m 824\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm\u001b[38;5;241m.\u001b[39mkernel \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcomm, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mkernel\u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[1;32m--> 825\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcomm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\comm\\base_comm.py:141\u001b[0m, in \u001b[0;36mBaseComm.send\u001b[1;34m(self, data, metadata, buffers)\u001b[0m\n\u001b[0;32m 137\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21msend\u001b[39m(\n\u001b[0;32m 138\u001b[0m \u001b[38;5;28mself\u001b[39m, data: MaybeDict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, metadata: MaybeDict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m, buffers: BuffersType \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 139\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 140\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Send a message to the frontend-side version of this comm\"\"\"\u001b[39;00m\n\u001b[1;32m--> 141\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpublish_msg\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 142\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcomm_msg\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 143\u001b[0m \u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 144\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmetadata\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 145\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 146\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\AppData\\Roaming\\Python\\Python311\\site-packages\\ipykernel\\comm\\comm.py:37\u001b[0m, in \u001b[0;36mBaseComm.publish_msg\u001b[1;34m(self, msg_type, data, metadata, buffers, **keys)\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkernel \u001b[38;5;241m=\u001b[39m Kernel\u001b[38;5;241m.\u001b[39minstance()\n\u001b[0;32m 36\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mkernel\u001b[38;5;241m.\u001b[39msession \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m---> 37\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msession\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msend\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 38\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miopub_socket\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 39\u001b[0m \u001b[43m \u001b[49m\u001b[43mmsg_type\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 40\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 41\u001b[0m \u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmetadata\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 42\u001b[0m \u001b[43m \u001b[49m\u001b[43mparent\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mkernel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_parent\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 43\u001b[0m \u001b[43m \u001b[49m\u001b[43mident\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtopic\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 44\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 45\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:848\u001b[0m, in \u001b[0;36mSession.send\u001b[1;34m(self, stream, msg_or_type, content, parent, ident, buffers, track, header, metadata)\u001b[0m\n\u001b[0;32m 846\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madapt_version:\n\u001b[0;32m 847\u001b[0m msg \u001b[38;5;241m=\u001b[39m adapt(msg, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39madapt_version)\n\u001b[1;32m--> 848\u001b[0m to_send \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mserialize\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmsg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mident\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 849\u001b[0m to_send\u001b[38;5;241m.\u001b[39mextend(buffers)\n\u001b[0;32m 850\u001b[0m longest \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m([\u001b[38;5;28mlen\u001b[39m(s) \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m to_send])\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:718\u001b[0m, in \u001b[0;36mSession.serialize\u001b[1;34m(self, msg, ident)\u001b[0m\n\u001b[0;32m 716\u001b[0m content \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnone\n\u001b[0;32m 717\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(content, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m--> 718\u001b[0m content \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpack\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcontent\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 719\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(content, \u001b[38;5;28mbytes\u001b[39m):\n\u001b[0;32m 720\u001b[0m \u001b[38;5;66;03m# content is already packed, as in a relayed message\u001b[39;00m\n\u001b[0;32m 721\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\session.py:108\u001b[0m, in \u001b[0;36mjson_packer\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 99\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m json\u001b[38;5;241m.\u001b[39mdumps(\n\u001b[0;32m 100\u001b[0m obj,\n\u001b[0;32m 101\u001b[0m default\u001b[38;5;241m=\u001b[39mjson_default,\n\u001b[0;32m 102\u001b[0m ensure_ascii\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 103\u001b[0m allow_nan\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 104\u001b[0m )\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 105\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m (\u001b[38;5;167;01mTypeError\u001b[39;00m, \u001b[38;5;167;01mValueError\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 106\u001b[0m \u001b[38;5;66;03m# Fallback to trying to clean the json before serializing\u001b[39;00m\n\u001b[0;32m 107\u001b[0m packed \u001b[38;5;241m=\u001b[39m json\u001b[38;5;241m.\u001b[39mdumps(\n\u001b[1;32m--> 108\u001b[0m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m,\n\u001b[0;32m 109\u001b[0m default\u001b[38;5;241m=\u001b[39mjson_default,\n\u001b[0;32m 110\u001b[0m ensure_ascii\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 111\u001b[0m allow_nan\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 112\u001b[0m )\u001b[38;5;241m.\u001b[39mencode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf8\u001b[39m\u001b[38;5;124m\"\u001b[39m, errors\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msurrogateescape\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 114\u001b[0m warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[0;32m 115\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMessage serialization failed with:\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00me\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 116\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mSupporting this message is deprecated in jupyter-client 7, please make \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 117\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msure your message is JSON-compliant\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 118\u001b[0m stacklevel\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m,\n\u001b[0;32m 119\u001b[0m )\n\u001b[0;32m 121\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m packed\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - " \u001b[1;31m[... skipping similar frames: json_clean at line 185 (1 times)]\u001b[0m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m obj]\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - " \u001b[1;31m[... skipping similar frames: json_clean at line 185 (2 times)]\u001b[0m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m[\u001b[49m\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m]\u001b[49m\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:169\u001b[0m, in \u001b[0;36m\u001b[1;34m(.0)\u001b[0m\n\u001b[0;32m 166\u001b[0m obj \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(obj)\n\u001b[0;32m 168\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mlist\u001b[39m):\n\u001b[1;32m--> 169\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m obj]\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, \u001b[38;5;28mdict\u001b[39m):\n\u001b[0;32m 172\u001b[0m \u001b[38;5;66;03m# First, validate that the dict won't lose data in conversion due to\u001b[39;00m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;66;03m# key collisions after stringification. This can happen with keys like\u001b[39;00m\n\u001b[0;32m 174\u001b[0m \u001b[38;5;66;03m# True and 'true' or 1 and '1', which collide in JSON.\u001b[39;00m\n\u001b[0;32m 175\u001b[0m nkeys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(obj)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:185\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 183\u001b[0m out \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k, v \u001b[38;5;129;01min\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m--> 185\u001b[0m out[\u001b[38;5;28mstr\u001b[39m(k)] \u001b[38;5;241m=\u001b[39m \u001b[43mjson_clean\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out\n\u001b[0;32m 188\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(obj, datetime):\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\jupyter_client\\jsonutil.py:192\u001b[0m, in \u001b[0;36mjson_clean\u001b[1;34m(obj)\u001b[0m\n\u001b[0;32m 189\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m obj\u001b[38;5;241m.\u001b[39mstrftime(ISO8601)\n\u001b[0;32m 191\u001b[0m \u001b[38;5;66;03m# we don't understand it, it's probably an unserializable object\u001b[39;00m\n\u001b[1;32m--> 192\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCan\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt clean for JSON: \u001b[39m\u001b[38;5;132;01m%r\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m obj)\n", - "\u001b[1;31mValueError\u001b[0m: Can't clean for JSON: " + "Cell \u001b[1;32mIn[19], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:258\u001b[0m, in \u001b[0;36mScene.__init__\u001b[1;34m(self, location, item, gis, **kwargs)\u001b[0m\n\u001b[0;32m 254\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_setup_gis_properties(gis)\n\u001b[0;32m 256\u001b[0m \u001b[38;5;66;03m# Set up the scene that will be used\u001b[39;00m\n\u001b[0;32m 257\u001b[0m \u001b[38;5;66;03m# either existing or new instance\u001b[39;00m\n\u001b[1;32m--> 258\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_setup_webscene_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 260\u001b[0m \u001b[38;5;66;03m# Assign the definition to helper class\u001b[39;00m\n\u001b[0;32m 261\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_set_widget_definition(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:371\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m ws\u001b[38;5;241m.\u001b[39mWebscene(\n\u001b[0;32m 361\u001b[0m operationalLayers\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 362\u001b[0m baseMap\u001b[38;5;241m=\u001b[39mbasemap,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 368\u001b[0m initialState\u001b[38;5;241m=\u001b[39minitial_state,\n\u001b[0;32m 369\u001b[0m )\n\u001b[0;32m 370\u001b[0m \u001b[38;5;66;03m# Set so widget gets initialized with webscene dict\u001b[39;00m\n\u001b[1;32m--> 371\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_source\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:392\u001b[0m, in \u001b[0;36mScene._update_source\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 391\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_update_source\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m--> 392\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene_dict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_webscene\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdict\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_dataclasses\\_webscene_spec.py:63\u001b[0m, in \u001b[0;36mBaseModel.dict\u001b[1;34m(self, mode, include, exclude, by_alias, exclude_unset, exclude_defaults, exclude_none, round_trip, warnings)\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdict\u001b[39m(\n\u001b[0;32m 51\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 52\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 61\u001b[0m warnings: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 62\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mdict\u001b[39m[\u001b[38;5;28mstr\u001b[39m, Any]:\n\u001b[1;32m---> 63\u001b[0m d \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel_dump\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 64\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 65\u001b[0m \u001b[43m \u001b[49m\u001b[43minclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 66\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 67\u001b[0m \u001b[43m \u001b[49m\u001b[43mby_alias\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby_alias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_unset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_unset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 69\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_defaults\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_defaults\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_none\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_none\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43mround_trip\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mround_trip\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 72\u001b[0m \u001b[43m \u001b[49m\u001b[43mwarnings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwarnings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 75\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_handle_enums(d)\n", + "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\pydantic\\main.py:364\u001b[0m, in \u001b[0;36mBaseModel.model_dump\u001b[1;34m(self, mode, include, exclude, context, by_alias, exclude_unset, exclude_defaults, exclude_none, round_trip, warnings, serialize_as_any)\u001b[0m\n\u001b[0;32m 326\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mmodel_dump\u001b[39m(\n\u001b[0;32m 327\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 328\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 339\u001b[0m serialize_as_any: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 340\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mdict\u001b[39m[\u001b[38;5;28mstr\u001b[39m, Any]:\n\u001b[0;32m 341\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump\u001b[39;00m\n\u001b[0;32m 342\u001b[0m \n\u001b[0;32m 343\u001b[0m \u001b[38;5;124;03m Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 362\u001b[0m \u001b[38;5;124;03m A dictionary representation of the model.\u001b[39;00m\n\u001b[0;32m 363\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 364\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__pydantic_serializer__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_python\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 365\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 366\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 367\u001b[0m \u001b[43m \u001b[49m\u001b[43mby_alias\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby_alias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 368\u001b[0m \u001b[43m \u001b[49m\u001b[43minclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 369\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 370\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontext\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcontext\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 371\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_unset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_unset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 372\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_defaults\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_defaults\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 373\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_none\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_none\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 374\u001b[0m \u001b[43m \u001b[49m\u001b[43mround_trip\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mround_trip\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 375\u001b[0m \u001b[43m \u001b[49m\u001b[43mwarnings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwarnings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 376\u001b[0m \u001b[43m \u001b[49m\u001b[43mserialize_as_any\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserialize_as_any\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 377\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[1;31mTypeError\u001b[0m: 'MockValSer' object cannot be converted to 'SchemaSerializer'" ] } ], From 029b29dbf13ec26bcaaa7b659fcafdd7e513f0e7 Mon Sep 17 00:00:00 2001 From: Tarun Kukreja Date: Tue, 12 Nov 2024 14:00:53 -0800 Subject: [PATCH 4/4] using_and_updating_GIS_Content sample notebook revamped --- .../using_and_updating_GIS_content.ipynb | 1857 ++--------------- 1 file changed, 230 insertions(+), 1627 deletions(-) diff --git a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb index 2cf4545d97..0f92fb4529 100644 --- a/samples/05_content_publishers/using_and_updating_GIS_content.ipynb +++ b/samples/05_content_publishers/using_and_updating_GIS_content.ipynb @@ -7,12 +7,11 @@ "# Using and updating GIS content\n", "\n", "The GIS is a warehouse of geographic content and services. Arcgis includes several classes to make use of these content, publish new items and update the them when needed. This sample on updating the content of web maps and web scenes will demonstrate the following\n", - " * **Replace web layers** of a web map. For instance, you can use this to update a web map when the services it points to were deleted. The sample shows how to read a web feature layer as a **FeatureService** object and inspect its properties.\n", - " * **Drive the map widget by code**. In addition to displaying the interactive map widget, you can also set it to load at a particular extent. This is great for presentation purposes. During this process, the sample shows how to create and use a **Map** object and a **Geocoder** object.\n", + " * **Replace web layers** of a web map. For instance, you can use this to update a web map when the services it points to were deleted. The sample shows how to Create a web feature layer as a **FeatureService** object and perform operations on it.\n", + " * **Drive the map widget by code**. In addition to displaying the interactive map widget, you can also set it to load at a particular extent. This is great for presentation purposes. During this process, the sample shows how to create and use a **Map** object.\n", " * Make a **copy of a public web scene** item into your contents and then update it.\n", " * Edit the list of layers to remove unnecessary ones.\n", - " * **Replace the basemap** of the web scene. In this step the sample shows how to search for **groups** and query the member items.\n", - " * Change visibility of layers." + " * **Replace the basemap** of the web scene. " ] }, { @@ -22,18 +21,39 @@ }, "source": [ "

Table of Contents

\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import warnings\n", - "warnings.filterwarnings(\"ignore\")\n", - "import arcgis" + "" ] }, { @@ -49,26 +69,6 @@ "gis = GIS(profile=\"your_online_profile\")" ] }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'2.4.1'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "arcgis.__version__" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -79,14 +79,16 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "### Create a feature layer" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -96,44 +98,7 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "folder = gis.content.folders.get()\n", - "folder.add(item_properties = item_prop, file=my_csv)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "csv_item = None\n", - "csv_item_generator = folder.list(item_type=ItemTypeEnum.CSV.value)\n", - "while True:\n", - " item = next(csv_item_generator)\n", - " if (item.title == \"USA Capitals spreadsheet for WebMap\"):\n", - " csv_item = item\n", - " break\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -141,16 +106,16 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " USA Capitals spreadsheet for WebMap\n", + " USA Capitals spreadsheet for WebMap\n", " \n", - "

CSV by arcgis_python\n", - "
Last Modified: October 24, 2024\n", + "

CSV by python_user\n", + "
Last Modified: November 05, 2024\n", "
0 comments, 0 views\n", "
\n", "
\n", @@ -160,13 +125,14 @@ "" ] }, - "execution_count": 11, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "csv_item" + "folder = gis.content.folders.get()\n", + "csv_item = folder.add(item_properties = item_prop, file=my_csv).result()" ] }, { @@ -230,7 +196,7 @@ "
\n", " USA Capitals spreadsheet for WebMap\n", " \n", - "

Feature Layer Collection by arcgis_python\n", + "

Feature Layer Collection by python_user\n", "
Last Modified: October 24, 2024\n", "
0 comments, 0 views\n", "
\n", @@ -252,7 +218,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "### Create WebMap, Add Layer, and Save" ] @@ -275,7 +243,7 @@ "
\n", " USA Capitals WebMap\n", " \n", - "
A webmap that contains USA capitals as a feature layer.
Web Map by arcgis_python\n", + "
A webmap that contains USA capitals as a feature layer.
Web Map by python_user\n", "
Last Modified: October 24, 2024\n", "
0 comments, 0 views\n", "
\n", @@ -299,7 +267,9 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "### Delete Feature Layer and re-publish\n", "Why? This seems a bit weird to put in a sample, but this demonstrates how some feature layers can get deleted without us realizing that they are part of webmaps. Below we will get the webmap and see that the layer does not show up! \n", @@ -342,7 +312,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "metadata": {}, @@ -469,7 +439,7 @@ "metadata": {}, "source": [ "## Fix errors in web map\n", - "The widget loads an empty web map with just a basemap. Let us investigate the contents of the web map to determine the issue. You can query the layers in the web map using the layers property" + "The widget loads an empty web map with just a basemap. Let us investigate the contents of the web map to determine the issue. You can query the layers in the web map using the `layers` property of `MapContent` class" ] }, { @@ -518,7 +488,7 @@ "
\n", " USA Capitals spreadsheet for WebMap\n", " \n", - "

Feature Layer Collection by arcgis_python\n", + "

Feature Layer Collection by python_user\n", "
Last Modified: October 24, 2024\n", "
0 comments, 0 views\n", "
\n", @@ -535,7 +505,6 @@ } ], "source": [ - "# re-publish so we can find it again\n", "new_capitals = csv_item.publish()\n", "new_capitals " ] @@ -565,7 +534,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Now we see that the web map is is rendering the layer properly after re-publishing the item" + "Now we see that the web map is is rendering the layer properly after re-publishing the item" ] }, { @@ -608,7 +577,6 @@ } ], "source": [ - "# Let's clean it up so we can always run this notebook again\n", "wm_item.delete(permanent=True)\n", "new_capitals.delete(permanent=True)\n", "csv_item.delete(permanent=True)" @@ -619,12 +587,12 @@ "metadata": {}, "source": [ "# Using and updating a web scene\n", - "In the sample above we observed how to update a web map. Updating the web scene is similar, we use the `update()` method. Let us look at the example of a web scene that displays tropical cyclones over the Pacific ocean." + "In the sample above we observed how to use and update a web map. Updating the web scene is similar, we use the `Scene` class. Let us look at the example of a web scene that displays tropical cyclones over the Pacific ocean." ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -638,27 +606,27 @@ " \n", "\n", "
\n", - " Tarun Copy of Western Pacific Typhoons (2005) by esri_3d\n", + " Western Pacific Typhoons (2005) by esri_3d\n", " \n", - "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by tkukreja_geosaurus\n", - "
Last Modified: September 05, 2024\n", - "
0 comments, 8 views\n", + "
A thematic global scene showing the 23 typhoons that meandered through the western Pacific in 2005
Web Scene by python_user\n", + "
Last Modified: November 07, 2024\n", + "
0 comments, 94 views\n", "
\n", " \n", " " ], "text/plain": [ - "" + "" ] }, - "execution_count": 17, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "search_result = gis.content.search('title:Tarun Copy of Western Pacific Typhoons (2005) by esri_3d', \n", - " item_type = 'Web Scene', )\n", + "search_result = gis.content.search('title:Western Pacific Typhoons (2005) by esri_3d', \n", + " item_type = 'Web Scene')\n", "web_scene_item = search_result[0]\n", "web_scene_item" ] @@ -672,737 +640,25 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { + "text/html": [ + "" + ], "text/plain": [ - "{'operationalLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoon Paths',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/18',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'minScale': 120000000,\n", - " 'maxScale': 0,\n", - " 'elevationInfo': {'mode': 'onTheGround'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'LineSymbol3D',\n", - " 'symbolLayers': [{'type': 'Line',\n", - " 'material': {'color': [0, 169, 230]},\n", - " 'size': 5}]}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'text',\n", - " 'text': \"

Typhoon {name}

Started: {datedescription}

\"}],\n", - " 'description': \"

Typhoon {name}

Started: {datedescription}

\",\n", - " 'title': '{name}'}},\n", - " {'id': '14a37c86f84-layer21',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'October - December',\n", - " 'visibility': False,\n", - " 'layers': [{'id': '7a24e304d2474d7eb29a712c95202140',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q4',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q4: {name}'}},\n", - " {'id': '10944e27c9f04bc39b5821c0046523a5',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q4',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c7f247-layer20',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'September',\n", - " 'visibility': False,\n", - " 'layers': [{'id': '90eba5af0b084c569a55ebc9b3bfc21e',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_3',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q3_3: {name}'}},\n", - " {'id': '341d7b380907439990e4c238147b46ce',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_3',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c78bc8-layer19',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'August',\n", - " 'visibility': False,\n", - " 'layers': [{'id': '6e54f2736388480ab0a214cb468d48f9',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q3_2: {name}'}},\n", - " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c4590b-layer18',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'July',\n", - " 'visibility': False,\n", - " 'layers': [{'id': 'b8cc403be27e475ca93db04a34845e89',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q3_1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q3_1: {name}'}},\n", - " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q3_1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c397dc-layer17',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'April - June',\n", - " 'visibility': False,\n", - " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q2: {name}'}},\n", - " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q2',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", - " 'visibility': False,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c2a1a7-layer16',\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'January - March',\n", - " 'visibility': True,\n", - " 'layers': [{'id': '16c9bf0e374443d394f0b77980171499',\n", - " 'opacity': 1,\n", - " 'title': 'Labels Q1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'axis': 'all',\n", - " 'minSize': 25,\n", - " 'valueUnit': 'unknown'}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'name': 'Pushpin 1'}}}},\n", - " 'showLabels': True,\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'attachments', 'displayType': 'auto'}],\n", - " 'showAttachments': True,\n", - " 'fieldInfos': [{'fieldName': 'typhoonid',\n", - " 'isEditable': True,\n", - " 'label': 'typhoonid',\n", - " 'visible': True},\n", - " {'fieldName': 'name',\n", - " 'isEditable': True,\n", - " 'label': 'name',\n", - " 'visible': True},\n", - " {'fieldName': 'datedescription',\n", - " 'isEditable': True,\n", - " 'label': 'datedescription',\n", - " 'visible': True},\n", - " {'fieldName': 'ORIG_FID',\n", - " 'format': {'digitSeparator': True, 'places': 0},\n", - " 'isEditable': True,\n", - " 'label': 'ORIG_FID',\n", - " 'visible': True}],\n", - " 'title': 'Labels Q1: {name}'}},\n", - " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c',\n", - " 'opacity': 1,\n", - " 'title': 'Typhoons Q1',\n", - " 'url': 'https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'layerDefinition': {'elevationInfo': {'mode': 'absoluteHeight'},\n", - " 'drawingInfo': {'renderer': {'type': 'simple',\n", - " 'visualVariables': [{'type': 'sizeInfo',\n", - " 'field': 'windspeed',\n", - " 'axis': 'height',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1},\n", - " {'type': 'sizeInfo',\n", - " 'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'valueUnit': 'meters'},\n", - " {'type': 'colorInfo',\n", - " 'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0, 255], 'value': 920},\n", - " {'color': [245, 245, 0, 255], 'value': 1014}]}],\n", - " 'description': '',\n", - " 'label': '',\n", - " 'symbol': {'type': 'styleSymbolReference',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'name': 'Standing Cylinder'}}}},\n", - " 'popupInfo': {'popupElements': [{'type': 'fields'},\n", - " {'type': 'media',\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}]}],\n", - " 'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'refreshInterval': 0,\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'}}],\n", - " 'layerType': 'GroupLayer',\n", - " 'visibilityMode': 'inherited'}],\n", - " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic',\n", - " 'elevationLayers': [{'id': 'globalElevation_0',\n", - " 'listMode': 'hide',\n", - " 'title': 'Terrain3D',\n", - " 'url': 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledElevationServiceLayer'}]},\n", - " 'ground': {'layers': [{'id': 'globalElevation_0',\n", - " 'listMode': 'hide',\n", - " 'title': 'Terrain3D',\n", - " 'url': 'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledElevationServiceLayer'}],\n", - " 'transparency': 0,\n", - " 'navigationConstraint': {'type': 'stayAbove'}},\n", - " 'heightModelInfo': {'heightModel': 'gravity_related_height',\n", - " 'heightUnit': 'meter'},\n", - " 'version': '1.34',\n", - " 'authoringApp': 'WebSceneViewer',\n", - " 'authoringAppVersion': '2024.2.0',\n", - " 'presentation': {'slides': [{'id': 'slide_1',\n", - " 'title': {'text': 'Start of 2005'},\n", - " 'thumbnail': {'url': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAA9AHADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5UooooAKKWu7+H3wr8T+OJFbSrIxWW7DXlwdkS/j3PsMn2qowcthNpbnB05Ud/uqx+gr698Hfs4+GtPKtr11cazeIAzQxHyYQe6n+I9c9V+leo2Pg7w1oIij0rw9pluyHKyC3V3x/vtluPc1p7OK3f3GTrJH59Rabey/6u1mb6ITRLpt7F/rLWZfqhFfovJcJGY4mk+c/8s1AJ9ue1QNqZaEC3jdwcg7gCc+hxx+Oa1hh+bTlf3/5pHPLGxifnMyOn3lYfUU2vvbWPD/hzWYZP7S8P2NyX+8y2yBz9HXn9a808V/ATw7qQeXQprrSp2yRHIDJEOOBz8w575P0rSWBf2WKGYU3oz5Uort/HPwz8R+DmMmoWnnWJOFu7f54m9Oe2fQ4NcT061xzpypu0kdsZxmrxYlFFFQUFS2tvLdTpDbxtJK5CqqjJJNNijaWRUjBZmOABX1r8F/hUvg7SLfxDrkUf9sSkFY5ACbRCPQkYfoTkjaM981rThzavb+tDOrU5Fczfg78BLe1jg1jxvEZZj80en9l44Mnqe+0fjnkD3md5rBFjsLFfsKBY1WPau0A44X0A4AGOhp4nnuLZYzKBkkHZHsYEcEck4Oc8j8M9a5iHVra1u4IxdrItwrxtum3CSdCNwjJOCTuJ688ZwRz0xoptKo15L+vuPOrYqTV4J+v9XOgstZgXzIFyrNISgkUg47jJAzg56dsVSu9YSS6eJZVRyo/ekBgBkjoOeD64HP4HG1K+spZ3FtPB5kiLMrq4VvlOGOeoypABPByevfRGkRWyb43eOZiAGiRRtJPUcZ785J4HOa9CFOildHmTq15e72/r+vkLpO2a8nmVd8zs+x2O5WQYHBJ9scdMjOcjM12zrvXyI44g275m4wOT0GPXGcc4poiAkht7pWWRATDPAgyACBwMEjgjPGOueKW/u7Ox09bjVb9AqMR5vmbN20ZIwuPQ8c9KKlSMPfk7IdKnKS5I7/18yzlzGGjCvnkZbAx9cUkt00YIZCkYB3SDnB9h6dea8t1z4n6bY3zf2FbTSEltzhgsch3MM7ef97PBIP4jv8Awbq8mu6Bb31zEkFw+Q8a5wpzx19sGuKlmGGrVfZU3d/M7p4SvThz1Fb7v+HNIxwzxPDMiSxMCjqwDAg9Qw7/AENeE/Fr4FQXcM2reDYxFcAb5LAfdf18v0P+z09McCveJIthBVMqOPl4I5HT29vanxuSAQeP1rrlFSVnqjOnUlTeh+dl1by2tw8FxG0cqEqysMEEVFX1z8c/hXF4ospdZ0OALrUS7pI0H/HyB7f3/T16dcV8kyxtFIySAqynBBry69B0ndbHr0ayqq/U+hf2WPhwuq6ifFGrQhrS0fFqjdHlHO76Lwfrj0NfSniCPWrmf7LYy2tvbsh3XMmZJFz2VOB+Z7irfhDRbbw7oNlpNim22tIljXjBY/xN9SeT7k1ZuC32o7T8g+YsDnI7jkcUq3s5WV3ZbW0v/wAOY3k7+Zw2ueA2vo1EGu3kFzsCE7FwwyThgu0nkk5OT9ayrnwDdCNmv9XUys3mNKkBBZ1ClJvvfLIDuBYfeGM8kmvRpLgNcERL87HJJ7+3tUN5ve4LHkHp6DmnDAUvaqbXrdsyeJkqfJF+mh5hJ8NzcwRodQ2ohOyJItiorD51BJbAJw2MEKc465qbRYNa8MXiLqcrX+moSSqffhdjgMPVTufA9/UYr0Yq2wAMVPqMU4qrgiRFdSCpDDqD1FdP1ainzRVn0aev+TXkzllOo1bm07Pb/gfIxbbXbK+8trKUCdVyY5lMZwwGFJI45K+tYHiDQ7fxX4qmivJLmG2sLZEeNMASO4fo2OwJz+FdQfD+nFIQY3DRPvhcOd0Zx0B7rnnacjPasTS7b+wtV1Sa7jeeS4SJpJYIT+92oVBC5OMEAYBwBycZBrlxkoxUFiNY829n2drrW2tu69NDXD86cnDR2+7vb5ehLpPhXSdHKNp1hao6MCsjwq7qBxw/DdO5JrfBzz2NMtri3u7dZ7WZJIXPyMGBzxn+VTbSO1ehRnSnBSpWs+xjOM07TvfzDt1z6Uqhd/zcU/aoUcn3oePI+Xk1dxWEZR95R+FfMH7TPw+TT7tfFOkxbbW6fbdovRJTzu+jc/iD6ivpwNhcd6o+ItMttf0O90q/UG2uojG3HIz0Ye4OCPcClKKkuWWxpSqezlzI6xlHlMu0MCSCKqSq0eEXB3feJJGB+XNXo/nyxzyenbNZ+ozC1eMBS3mMQMn7vf8ApXjulqp9jvvf3RhjWJ1IT/gXIp00J27s884+U81UadmvUj5wwY9Txggf1q9bysUkXj5MAV2TcoJM5UlLQpEHGSOKKuqdyAED72Oe/H/16ryxgcjiili41JKHUmdFxVyNzljUDQRfaludp89UKBsn7pIJ46dQKvLADGGyc5xUE8flgHOc8V0+7LRmbTWpBb20EIkWCGNFlYu4VcBmPU/U082yBCAuwf7BK/yqSLlhU7Dt1oso6JArvUpeUd2fNcr2U4x/LP61IrMsZyC20EgZ/wAaU8E0VQissiS7mQ9Dg47H0pVJ4B+lSyjIB9qiHTFWtiHuf//Z'},\n", - " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", - " 'x': 16338046.55787945,\n", - " 'y': -255903.18543654634,\n", - " 'z': 6324439.902154693},\n", - " 'heading': 351.1964858600443,\n", - " 'tilt': 17.653475866991755}},\n", - " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic'},\n", - " 'ground': {'transparency': 0},\n", - " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", - " {'id': '14a37c2a1a7-layer16'},\n", - " {'id': '16c9bf0e374443d394f0b77980171499'},\n", - " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c'},\n", - " {'id': 'globalElevation_0'}],\n", - " 'environment': {'lighting': {'type': 'sun'},\n", - " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", - " {'id': 'slide_2',\n", - " 'title': {'text': 'August origins'},\n", - " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", - " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", - " 'x': 18034663.07613952,\n", - " 'y': 544179.4588633721,\n", - " 'z': 2819426.3450047094},\n", - " 'heading': 315.5348196196585,\n", - " 'tilt': 37.399468879606104}},\n", - " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic'},\n", - " 'ground': {'transparency': 0},\n", - " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", - " {'id': '14a37c78bc8-layer19'},\n", - " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", - " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", - " {'id': 'globalElevation_0'}],\n", - " 'environment': {'lighting': {'type': 'sun'},\n", - " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", - " {'id': 'slide_3',\n", - " 'title': {'text': 'August in Japan'},\n", - " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", - " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", - " 'x': 14317116.922236785,\n", - " 'y': 3162810.5410621683,\n", - " 'z': 1942131.4690581001},\n", - " 'heading': 41.187868723912416,\n", - " 'tilt': 38.22074788332464}},\n", - " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic'},\n", - " 'ground': {'transparency': 0},\n", - " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", - " {'id': '14a37c78bc8-layer19'},\n", - " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", - " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", - " {'id': 'globalElevation_0'}],\n", - " 'environment': {'lighting': {'type': 'sun'},\n", - " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}},\n", - " {'id': 'slide_4',\n", - " 'title': {'text': 'All Typhoons'},\n", - " 'thumbnail': {'url': 'data:image/jpeg;base64,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'},\n", - " 'viewpoint': {'camera': {'position': {'spatialReference': {'wkid': 102100},\n", - " 'x': 15204174.902554411,\n", - " 'y': 1790041.1372453775,\n", - " 'z': 10970890.001691733},\n", - " 'heading': 3.086488857999165,\n", - " 'tilt': 4.939849335423939}},\n", - " 'baseMap': {'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'opacity': 1,\n", - " 'title': 'World Topo Map',\n", - " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", - " 'visibility': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic'},\n", - " 'ground': {'transparency': 0},\n", - " 'visibleLayers': [{'id': '882ce65eceda4e2ba2ad65f9e2c0632f'},\n", - " {'id': '14a37c86f84-layer21'},\n", - " {'id': '7a24e304d2474d7eb29a712c95202140'},\n", - " {'id': '10944e27c9f04bc39b5821c0046523a5'},\n", - " {'id': '14a37c7f247-layer20'},\n", - " {'id': '90eba5af0b084c569a55ebc9b3bfc21e'},\n", - " {'id': '341d7b380907439990e4c238147b46ce'},\n", - " {'id': '14a37c78bc8-layer19'},\n", - " {'id': '6e54f2736388480ab0a214cb468d48f9'},\n", - " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6'},\n", - " {'id': '14a37c4590b-layer18'},\n", - " {'id': 'b8cc403be27e475ca93db04a34845e89'},\n", - " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c'},\n", - " {'id': '14a37c397dc-layer17'},\n", - " {'id': '56803f3d64184140950f0ef1256a0603'},\n", - " {'id': '72668fcc8a904bd6a1444bef2e72f420'},\n", - " {'id': '14a37c2a1a7-layer16'},\n", - " {'id': '16c9bf0e374443d394f0b77980171499'},\n", - " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c'},\n", - " {'id': 'globalElevation_0'}],\n", - " 'environment': {'lighting': {'type': 'sun'},\n", - " 'weather': {'type': 'sunny', 'cloudCover': 0.5}}}]},\n", - " 'initialState': {'environment': {'lighting': {'type': 'sun',\n", - " 'datetime': 1489543976000,\n", - " 'displayUTCOffset': 10},\n", - " 'atmosphereEnabled': True,\n", - " 'starsEnabled': True,\n", - " 'weather': {'type': 'sunny', 'cloudCover': 0}},\n", - " 'viewpoint': {'camera': {'position': {'spatialReference': {'latestWkid': 3857,\n", - " 'wkid': 102100},\n", - " 'x': 16338046.55787945,\n", - " 'y': -255903.18543654715,\n", - " 'z': 6324439.902154693},\n", - " 'heading': 351.19648581329864,\n", - " 'tilt': 17.65347586839879}}},\n", - " 'spatialReference': {'latestWkid': 3857, 'wkid': 102100},\n", - " 'viewingMode': 'global'}" + "" ] }, - "execution_count": 18, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "web_scene_item.get_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "'MockValSer' object cannot be converted to 'SchemaSerializer'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[19], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m web_scene_item \u001b[38;5;241m=\u001b[39m search_result[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m----> 2\u001b[0m web_scene_obj \u001b[38;5;241m=\u001b[39m \u001b[43mScene\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweb_scene_item\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# display web scene in the notebook\u001b[39;00m\n\u001b[0;32m 5\u001b[0m web_scene_obj\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:258\u001b[0m, in \u001b[0;36mScene.__init__\u001b[1;34m(self, location, item, gis, **kwargs)\u001b[0m\n\u001b[0;32m 254\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_setup_gis_properties(gis)\n\u001b[0;32m 256\u001b[0m \u001b[38;5;66;03m# Set up the scene that will be used\u001b[39;00m\n\u001b[0;32m 257\u001b[0m \u001b[38;5;66;03m# either existing or new instance\u001b[39;00m\n\u001b[1;32m--> 258\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_setup_webscene_properties\u001b[49m\u001b[43m(\u001b[49m\u001b[43mitem\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 260\u001b[0m \u001b[38;5;66;03m# Assign the definition to helper class\u001b[39;00m\n\u001b[0;32m 261\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_helper\u001b[38;5;241m.\u001b[39m_set_widget_definition(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:371\u001b[0m, in \u001b[0;36mScene._setup_webscene_properties\u001b[1;34m(self, item)\u001b[0m\n\u001b[0;32m 360\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene \u001b[38;5;241m=\u001b[39m ws\u001b[38;5;241m.\u001b[39mWebscene(\n\u001b[0;32m 361\u001b[0m operationalLayers\u001b[38;5;241m=\u001b[39m[],\n\u001b[0;32m 362\u001b[0m baseMap\u001b[38;5;241m=\u001b[39mbasemap,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 368\u001b[0m initialState\u001b[38;5;241m=\u001b[39minitial_state,\n\u001b[0;32m 369\u001b[0m )\n\u001b[0;32m 370\u001b[0m \u001b[38;5;66;03m# Set so widget gets initialized with webscene dict\u001b[39;00m\n\u001b[1;32m--> 371\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_update_source\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\scene_widget.py:392\u001b[0m, in \u001b[0;36mScene._update_source\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 391\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_update_source\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[1;32m--> 392\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_webscene_dict \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_webscene\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdict\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\arcgis\\map\\_dataclasses\\_webscene_spec.py:63\u001b[0m, in \u001b[0;36mBaseModel.dict\u001b[1;34m(self, mode, include, exclude, by_alias, exclude_unset, exclude_defaults, exclude_none, round_trip, warnings)\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdict\u001b[39m(\n\u001b[0;32m 51\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 52\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 61\u001b[0m warnings: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 62\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mdict\u001b[39m[\u001b[38;5;28mstr\u001b[39m, Any]:\n\u001b[1;32m---> 63\u001b[0m d \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel_dump\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 64\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 65\u001b[0m \u001b[43m \u001b[49m\u001b[43minclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 66\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 67\u001b[0m \u001b[43m \u001b[49m\u001b[43mby_alias\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby_alias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_unset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_unset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 69\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_defaults\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_defaults\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 70\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_none\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_none\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43mround_trip\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mround_trip\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 72\u001b[0m \u001b[43m \u001b[49m\u001b[43mwarnings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwarnings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 75\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_handle_enums(d)\n", - "File \u001b[1;32m~\\.conda\\envs\\geosaurus_dev_env\\Lib\\site-packages\\pydantic\\main.py:364\u001b[0m, in \u001b[0;36mBaseModel.model_dump\u001b[1;34m(self, mode, include, exclude, context, by_alias, exclude_unset, exclude_defaults, exclude_none, round_trip, warnings, serialize_as_any)\u001b[0m\n\u001b[0;32m 326\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mmodel_dump\u001b[39m(\n\u001b[0;32m 327\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 328\u001b[0m \u001b[38;5;241m*\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 339\u001b[0m serialize_as_any: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 340\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mdict\u001b[39m[\u001b[38;5;28mstr\u001b[39m, Any]:\n\u001b[0;32m 341\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Usage docs: https://docs.pydantic.dev/2.8/concepts/serialization/#modelmodel_dump\u001b[39;00m\n\u001b[0;32m 342\u001b[0m \n\u001b[0;32m 343\u001b[0m \u001b[38;5;124;03m Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 362\u001b[0m \u001b[38;5;124;03m A dictionary representation of the model.\u001b[39;00m\n\u001b[0;32m 363\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 364\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__pydantic_serializer__\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_python\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 365\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 366\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 367\u001b[0m \u001b[43m \u001b[49m\u001b[43mby_alias\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mby_alias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 368\u001b[0m \u001b[43m \u001b[49m\u001b[43minclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 369\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 370\u001b[0m \u001b[43m \u001b[49m\u001b[43mcontext\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcontext\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 371\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_unset\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_unset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 372\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_defaults\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_defaults\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 373\u001b[0m \u001b[43m \u001b[49m\u001b[43mexclude_none\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mexclude_none\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 374\u001b[0m \u001b[43m \u001b[49m\u001b[43mround_trip\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mround_trip\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 375\u001b[0m \u001b[43m \u001b[49m\u001b[43mwarnings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwarnings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 376\u001b[0m \u001b[43m \u001b[49m\u001b[43mserialize_as_any\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserialize_as_any\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 377\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[1;31mTypeError\u001b[0m: 'MockValSer' object cannot be converted to 'SchemaSerializer'" - ] - } - ], - "source": [ - "web_scene_item = search_result[0]\n", "web_scene_obj = Scene(item=web_scene_item)\n", - "\n", - "# display web scene in the notebook\n", "web_scene_obj" ] }, @@ -1423,529 +679,104 @@ "metadata": {}, "source": [ "## Make a copy of the public web scene item\n", - "To make a copy, we essentially download the content of the web scene JSON, remove the parts we don't want, add the layers that we want and publish a new item using that information. The publishing steps is similar to what is described earlier in the **data preparation** section and in detail in the sample titled **Publishing web maps and web scenes**.\n", + "Let's say, we are only interested in the storms that occur in summer. Summer in tropical Asia is around April-June and that matches with a layer in the existing web scene. We will use the `layers` property of `SceneContent` class to understand how the layers look like.\n", "\n", - "Let's say, we are only interested in the storms that occur in summer. Summer in tropical Asia is around April-June and that matches with a layer in the existing web scene. Let us query the `operationalLayers` section of the web scene to understand how the layers look like.\n", - "\n", - "### Update operational layers of new web scene" + "### Update layers of new web scene" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[{'id': '882ce65eceda4e2ba2ad65f9e2c0632f',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'symbolLayers': [{'material': {'color': [0, 169, 230],\n", - " 'transparency': 0},\n", - " 'size': 5,\n", - " 'type': 'Line'}],\n", - " 'type': 'LineSymbol3D'},\n", - " 'type': 'simple'}},\n", - " 'elevationInfo': {'mode': 'onTheGround'},\n", - " 'minScale': 120000000},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'description': \"

Typhoon {name}

Started: {datedescription}

\",\n", - " 'mediaInfos': [],\n", - " 'title': '{name}'},\n", - " 'title': 'Typhoon Paths',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/18',\n", - " 'visibility': True},\n", - " {'id': '14a37c86f84-layer21',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '7a24e304d2474d7eb29a712c95202140',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q4',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17',\n", - " 'visibility': False},\n", - " {'id': '10944e27c9f04bc39b5821c0046523a5',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q4',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'October - December',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c7f247-layer20',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '90eba5af0b084c569a55ebc9b3bfc21e',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q3_3',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14',\n", - " 'visibility': False},\n", - " {'id': '341d7b380907439990e4c238147b46ce',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q3_3',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'September',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c78bc8-layer19',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '6e54f2736388480ab0a214cb468d48f9',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q3_2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11',\n", - " 'visibility': False},\n", - " {'id': '6b549bb78d824b4c8d24f5c90b93c4f6',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q3_2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'August',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c4590b-layer18',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': 'b8cc403be27e475ca93db04a34845e89',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q3_1',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8',\n", - " 'visibility': False},\n", - " {'id': 'e60bd6abdb094bf2b9daacd8bb57495c',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q3_1',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'July',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c397dc-layer17',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", - " 'visibility': False},\n", - " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'April - June',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'},\n", - " {'id': '14a37c2a1a7-layer16',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '16c9bf0e374443d394f0b77980171499',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q1',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2',\n", - " 'visibility': True},\n", - " {'id': '3921d1e5c45c41b4a0b498df8fab4e2c',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q1',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1',\n", - " 'visibility': True}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'January - March',\n", - " 'visibility': True,\n", - " 'visibilityMode': 'inherited'}]" + "[,\n", + " Group Layer: October - December,\n", + " Group Layer: September,\n", + " Group Layer: August,\n", + " Group Layer: July,\n", + " Group Layer: April - June,\n", + " Group Layer: January - March]" ] }, + "execution_count": 7, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "display(web_scene_obj['operationalLayers'])" + "layers_list = web_scene_obj.content.layers\n", + "layers_list" ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ - "There is a lot of information displayed above. Let us drill into this and display only layer names and their urls. If you notice, some of the layers above are group layers, meaning, they contain sub layers. So let us write a loop like below and print some details." + "If you notice, some of the layers above are group layers, meaning, they contain sub layers." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We are only interested in the layers that correspond to cyclones in summer. We will overwrite the `layers` property of `SceneContent` class to update the layers of the new web scene" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Typhoon Paths :: ArcGISFeatureLayer\n", - "October - December :: GroupLayer\n", - "\tLabels Q4 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/17\n", - "\tTyphoons Q4 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/16\n", - "September :: GroupLayer\n", - "\tLabels Q3_3 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/14\n", - "\tTyphoons Q3_3 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/13\n", - "August :: GroupLayer\n", - "\tLabels Q3_2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/11\n", - "\tTyphoons Q3_2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/10\n", - "July :: GroupLayer\n", - "\tLabels Q3_1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/8\n", - "\tTyphoons Q3_1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/7\n", - "April - June :: GroupLayer\n", - "\tLabels Q2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5\n", - "\tTyphoons Q2 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4\n", - "January - March :: GroupLayer\n", - "\tLabels Q1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/2\n", - "\tTyphoons Q1 :: http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/1\n" - ] + "data": { + "text/plain": [ + "[,\n", + " Group Layer: April - June]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "for layer in web_scene_obj['operationalLayers']:\n", - " print(layer['title'] + \" :: \" + layer['layerType'])\n", - " if layer['layerType'] == 'GroupLayer':\n", - " for sub_layer in layer['layers']:\n", - " print(\"\\t\" + sub_layer['title'] + \" :: \"+ sub_layer['url'])" + "subset_op_layers = [layers_list[0],layers_list[5]]\n", + "subset_op_layers" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 29, "metadata": {}, + "outputs": [], "source": [ - "We are only interested in the layers that correspond to cyclones in summer. From the above report, we understand that information is in a group layer with two sub layers. Let us extract just that dictionary and compose a new web scene data." + "new_web_scene_obj = web_scene_obj\n", + "new_web_scene_obj.content.layers = subset_op_layers" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[{'id': '14a37c397dc-layer17',\n", - " 'layerType': 'GroupLayer',\n", - " 'layers': [{'id': '56803f3d64184140950f0ef1256a0603',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Pushpin 1',\n", - " 'styleName': 'EsriIconsStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'all',\n", - " 'minSize': 25,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'unknown'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'showLabels': True,\n", - " 'title': 'Labels Q2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/5',\n", - " 'visibility': False},\n", - " {'id': '72668fcc8a904bd6a1444bef2e72f420',\n", - " 'layerDefinition': {'drawingInfo': {'renderer': {'description': '',\n", - " 'label': '',\n", - " 'symbol': {'name': 'Standing Cylinder',\n", - " 'styleName': 'EsriThematicShapesStyle',\n", - " 'type': 'styleSymbolReference'},\n", - " 'type': 'simple',\n", - " 'visualVariables': [{'axis': 'height',\n", - " 'field': 'windspeed',\n", - " 'minDataValue': 0.0001,\n", - " 'minSize': 1,\n", - " 'type': 'sizeInfo'},\n", - " {'axis': 'widthAndDepth',\n", - " 'minSize': 100000,\n", - " 'type': 'sizeInfo',\n", - " 'valueUnit': 'meters'},\n", - " {'field': 'airpressure',\n", - " 'stops': [{'color': [245, 0, 0], 'value': 920},\n", - " {'color': [245, 245, 0], 'value': 1014}],\n", - " 'type': 'colorInfo'}]}},\n", - " 'elevationInfo': {'mode': 'absoluteHeight'}},\n", - " 'layerType': 'ArcGISFeatureLayer',\n", - " 'opacity': 1,\n", - " 'popupInfo': {'mediaInfos': [{'caption': \"

Pressure: {airpressure} hPa

Wind speed: {wind_mph} mph / {wind_kph} kph

Date: {timedescription}

\",\n", - " 'title': \"

{typhoonclass} {typhoon}

\",\n", - " 'type': 'image',\n", - " 'value': {'sourceURL': '{image}'}}],\n", - " 'title': '{typhoon}'},\n", - " 'title': 'Typhoons Q2',\n", - " 'url': 'http://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/PacificTyphoons2005_WFL/FeatureServer/4',\n", - " 'visibility': False}],\n", - " 'listMode': 'hide-children',\n", - " 'opacity': 1,\n", - " 'title': 'April - June',\n", - " 'visibility': False,\n", - " 'visibilityMode': 'inherited'}]" + "[,\n", + " Group Layer: April - June]" ] }, + "execution_count": 20, "metadata": {}, - "output_type": "display_data" + "output_type": "execute_result" } ], "source": [ - "# Let us construct a list comprehension and mine out that group layer.\n", - "subset_op_layers = [subset for subset in web_scene_obj['operationalLayers'] if subset['title'] == 'April - June']\n", - "display(subset_op_layers)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "# Let us apply the changes to a new web scene object.\n", - "new_web_scene_obj = web_scene_obj\n", - "new_web_scene_obj['operationalLayers'] = subset_op_layers" + "new_web_scene_obj.content.layers" ] }, { @@ -1953,306 +784,167 @@ "metadata": {}, "source": [ "### Update basemap of new web scene\n", - "We now have the necessary `operationalLayers` information. Let us also try to change the basemap to a darker shade. First let us search the basemaps available in the current portal. If no suitable one is found, we can widen the search outside the organization and use a basemap published by Esri.\n", - "\n", - "**Basemaps** are web maps that are stored in a **group** usually called **Basemaps**. Thus to get the list of basemaps available on a portal, we can find the basemaps group and list all web maps that are a part of it.\n", + "We now have the necessary `layers` information. Let us also try to change the basemap to a darker shade. \n", "\n", - "To get the list of groups on the portal, we use `groups` property of the `GIS` class." + "**Basemaps** are web maps that are stored in a **group** usually called **Basemaps**. Thus to get the list of basemaps available we use the `basemaps` property of `BasemapManager` class" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas\n", - " \n", - "
Web Map by arcgis_python\n", - "
Last Modified: July 05, 2017\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['basemap', 'esri_basemap', 'vector', 'canvas', 'dark', 'esri_vector']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas\n", - " \n", - "
Web Map by arcgis_python\n", - "
Last Modified: July 05, 2017\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['neutral', 'subdued', 'canvas', 'shaded', 'world', 'Global', 'basemap', 'current', 'gray', 'grey', 'dark gray', 'dark grey', 'esri', 'esri_basemap']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas (WGS84)\n", - " \n", - "
Web Map by arcgis_python\n", - "
Last Modified: July 05, 2017\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['basemap', 'esri_basemap', 'world', 'global', 'AFA250_base', 'maps', 'WGS84', 'GCS', 'wkid 4326', 'vector', 'esri_vector', 'dark', 'canvas', 'v1', 'general availability']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas\n", - " \n", - "
This map is designed to focus attention on your thematic content by providing a neutral background with minimal colors, labels, and features.Web Map by esri_en\n", - "
Last Modified: October 29, 2014\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['basemap']\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
\n", - " \n", - " \n", - " \n", - "
\n", - "\n", - "
\n", - " Dark Gray Canvas\n", - " \n", - "
Ova mapa dizajnirana je tako da usmeri pažnju na tematski sadržaj vaše mape pomoću neutralne pozadine sa minimalnim brojem boja, oznaka i funkcija.Web Map by esri_sr\n", - "
Last Modified: April 28, 2016\n", - "
0 comments, 0 views\n", - "
\n", - "
\n", - " " - ], - "text/plain": [ - "" + "{'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", + " 'layerType': 'ArcGISTiledMapServiceLayer',\n", + " 'listMode': 'show',\n", + " 'opacity': 1.0,\n", + " 'refreshInterval': 0.0,\n", + " 'title': 'World Topo Map',\n", + " 'url': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer',\n", + " 'visibility': True}],\n", + " 'title': 'Topographic'}" ] }, + "execution_count": 12, "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['pozadinska mapa']\n" - ] + "output_type": "execute_result" } ], "source": [ - "basemap_search = gis.content.search('title:dark', \n", - " outside_org=True, item_type='web map')\n", - "for item in basemap_search:\n", - " display(item)\n", - " print(item.tags)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have found the basemap of our choice. Let us read it as a **`WebMap`** object and query the `baseMap` dictionary." + "new_web_scene_obj.basemap.basemap" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'baseMapLayers': [{'id': 'layer0',\n", - " 'layerType': 'ArcGISTiledMapServiceLayer',\n", - " 'opacity': 1,\n", - " 'title': 'World_Dark_Gray_Base',\n", - " 'url': 'https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Base/MapServer',\n", - " 'visibility': True},\n", - " {'id': 'World_Dark_Gray_Reference_8618',\n", - " 'isReference': True,\n", - " 'layerType': 'ArcGISTiledMapServiceLayer',\n", - " 'opacity': 1,\n", - " 'title': 'World_Dark_Gray_Reference',\n", - " 'url': 'https://services.arcgisonline.com/arcgis/rest/services/Canvas/World_Dark_Gray_Reference/MapServer',\n", - " 'visibility': True}],\n", - " 'title': 'Dark Gray Canvas'}" + "['satellite',\n", + " 'hybrid',\n", + " 'terrain',\n", + " 'oceans',\n", + " 'osm',\n", + " 'dark-gray-vector',\n", + " 'gray-vector',\n", + " 'streets-vector',\n", + " 'topo-vector',\n", + " 'streets-night-vector',\n", + " 'streets-relief-vector',\n", + " 'streets-navigation-vector',\n", + " 'arcgis-imagery',\n", + " 'arcgis-imagery-standard',\n", + " 'arcgis-imagery-labels',\n", + " 'arcgis-light-gray',\n", + " 'arcgis-dark-gray',\n", + " 'arcgis-navigation',\n", + " 'arcgis-navigation-night',\n", + " 'arcgis-streets',\n", + " 'arcgis-streets-night',\n", + " 'arcgis-streets-relief',\n", + " 'arcgis-topographic',\n", + " 'arcgis-oceans',\n", + " 'osm-standard',\n", + " 'osm-standard-relief',\n", + " 'osm-streets',\n", + " 'osm-streets-relief',\n", + " 'osm-light-gray',\n", + " 'osm-dark-gray',\n", + " 'arcgis-terrain',\n", + " 'arcgis-community',\n", + " 'arcgis-charted-territory',\n", + " 'arcgis-colored-pencil',\n", + " 'arcgis-nova',\n", + " 'arcgis-modern-antique',\n", + " 'arcgis-midcentury',\n", + " 'arcgis-newspaper',\n", + " 'arcgis-hillshade-light',\n", + " 'arcgis-hillshade-dark',\n", + " 'arcgis-human-geography',\n", + " 'arcgis-human-geography-dark']" ] }, - "execution_count": null, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dark_basemap_item = basemap_search[1]\n", - "dark_basemap_obj = arcgis.layers.WebMap(dark_basemap_item)\n", - "dark_basemap_obj['baseMap']" + "new_web_scene_obj.basemap.basemaps" ] }, { - "cell_type": "markdown", + "cell_type": "code", + "execution_count": 14, "metadata": {}, + "outputs": [], "source": [ - "Now let us explore how the `baseMap` dictionary of the **web scene** looks like." + "new_web_scene_obj.basemap.basemap = new_web_scene_obj.basemap.basemaps[5]" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'baseMapLayers': [{'id': '73e9780a7d6f413f8547abbd19ec786c',\n", - " 'layerType': 'ArcGISTiledMapServiceLayer',\n", - " 'url': 'http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer'}],\n", - " 'elevationLayers': [{'id': 'globalElevation_0',\n", - " 'layerType': 'ArcGISTiledElevationServiceLayer',\n", - " 'url': 'http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer'}],\n", - " 'id': 'basemap',\n", - " 'title': 'Topographic',\n", - " 'visibility': True}" + "{'baseMapLayers': [{'id': 'dark-gray-base-layer',\n", + " 'layerType': 'VectorTileLayer',\n", + " 'opacity': 1.0,\n", + " 'styleUrl': 'https://www.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json',\n", + " 'title': 'Dark Gray Base',\n", + " 'visibility': True},\n", + " {'id': 'dark-gray-reference-layer',\n", + " 'isReference': True,\n", + " 'layerType': 'VectorTileLayer',\n", + " 'opacity': 1.0,\n", + " 'styleUrl': 'https://www.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json',\n", + " 'title': 'Dark Gray Reference',\n", + " 'visibility': True}],\n", + " 'title': 'Dark Gray Vector'}" ] }, - "execution_count": null, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "new_web_scene_obj['baseMap']" + "new_web_scene_obj.basemap.basemap" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "To get the desired basemap, we need to update the only `url` key-value pair of the web scene's `baseMap` dictionary. Here we will only pick the first layer of the dark basemap web map." + "Now that we have performed the necessary updates, we can go ahead and publish this as a new web scene item on our portal. We will do this using the `save()` method of the `Scene` class" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "new_web_scene_obj['baseMap']['baseMapLayers'][0]['url'] = \\\n", - "dark_basemap_obj['baseMap']['baseMapLayers'][0]['url']" - ] - }, - { - "cell_type": "markdown", + "execution_count": 59, "metadata": {}, + "outputs": [], "source": [ - "Now that we have performed the necessary updates, we can go ahead and publish this as a new web scene item on our portal." + "web_scene_data_item_prop = {'title':'Tropical Cyclones - Summer',\n", + " 'tags' : 'ArcGIS Python API',\n", + " 'snippet' : str.format('Subset of {0} published by {1}',\n", + " web_scene_item.title, web_scene_item.owner,\n", + " \"https://www.arcgis.com/home/item.html?id=\" + web_scene_item.id),\n", + " }\n", + "\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "metadata": {}, "outputs": [ { @@ -2260,41 +952,33 @@ "text/html": [ "
\n", " \n", "\n", "
\n", - " Toprical Cyclones - Summer\n", + " Tropical Cyclones - Summer\n", " \n", - "
Subset of Western Pacific Typhoons (2005) published by arcgis_pythonWeb Scene by arcgis_python\n", - "
Last Modified: July 05, 2017\n", + "
Subset of Western Pacific Typhoons (2005) by esri_3d published by python_user
Web Scene by python_user\n", + "
Last Modified: November 12, 2024\n", "
0 comments, 0 views\n", "
\n", "
\n", " " ], "text/plain": [ - "" + "" ] }, - "execution_count": null, + "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "new_web_scene_properties= {'title':'Toprical Cyclones - Summer',\n", - " 'type' : 'Web Scene',\n", - " 'tags' : 'ArcGIS Python API',\n", - " 'snippet' : str.format('Subset of {0} published by {1}',\n", - " web_scene_item.title, web_scene_item.owner,\n", - " \"https://www.arcgis.com/home/item.html?id=\" + web_scene_item.id),\n", - " 'text' : json.dumps(new_web_scene_obj)}\n", - "\n", - "new_item = gis.content.add(new_web_scene_properties)\n", - "new_item" + "web_scene_data_item = new_web_scene_obj.save(item_properties=web_scene_data_item_prop)\n", + "web_scene_data_item" ] }, { @@ -2306,106 +990,25 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "new_item.share(True)\n", - "new_web_scene_obj = arcgis.layers.WebScene(new_item)\n", - "new_web_scene_obj" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Our required updates have been applied to the new web scene. However notice the **April - June** layer is **turned off** by default. Let us fix that and update the web scene.\n", - "\n", - "Let us query the `operationalLayer` dictionary of the new web scene and look for a key called `visibility`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n" - ] - } - ], - "source": [ - "for layer in new_web_scene_obj['operationalLayers']:\n", - " print(layer['visibility'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we know, there is just 1 group layer and it is turned off. Let us change that and update the web scene." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "for layer in new_web_scene_obj['operationalLayers']:\n", - " layer['visibility'] = True" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To update the web scene call the `update()` method on the web scene object." - ] - }, - { - "cell_type": "code", - "execution_count": 4, + "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 4, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "new_web_scene_obj.update()\n", + "new_web_scene_obj = Scene(item = web_scene_data_item)\n", "new_web_scene_obj" ] }, @@ -2414,7 +1017,7 @@ "metadata": {}, "source": [ "# Summary\n", - "In this sample, we observed how to consume web maps, web scenes and how to update them. During this process, the sample showed how to read a web feature layers, how to use geocoding to get co-ordinates of a point of interest, how to modify the map widget using code, how to make copy of an existing item into your account, how to look for basemaps and finally, how to update layer properties within a web scene." + "In this sample, we observed how to consume web maps, web scenes and how to update them. During this process, the sample showed how to read a web feature layers, how to modify the map widget using code, how to make copy of an existing item into your account, how to look for basemaps" ] } ], @@ -2439,7 +1042,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.0" + "version": "3.11.10" }, "toc": { "base_numbering": 1,