Слои сцены представляют большие геопространственные данные в 3D, это помогает вашей аудитории понимать и изучать географическую информацию в более реалистичном виде. Слои сцен – это кэшированные слои, оптимизированные для отображения большого количества 3D-ресурсов. Слои сцены могут включать 3D-точки, облака точек, 3D-объекты, здания и интегрированные модели mesh и вокселы. Слой сцены соответствует спецификации Индексированного слоя 3D сцены (I3S). Слои сцены могут быть опубликованы в ArcGIS Online и ArcGIS Enterprise в виде слоев веб-сцен. Слои сцены могут ссылаться не множество разных источников, которые описаны в этой статье.
Пакет слоя сцены (.slpk)
Пакеты слоев сцен разработаны для быстрого переноса 3D-данных одним файлом. Пакет слоя сцены можно посмотреть в настольном клиенте, например, AllSource или ArcGIS Earth, либо выгрузить и опубликовать в ArcGIS Online или ArcGIS Enterprise.
Также вы можете опубликовать файл .slpk на ArcGIS Enterprise или ArcGIS Online с помощью инструмента Опубликовать пакет, чтобы создать слой веб-сцены. Это рекомендуемые инструкции при публикации пакетов слоя сцен, чей вес превышает 500 ГБ. Для пакетов слоев сцен, которые меньше 500 ГБ для загрузки и публикации слоев веб-сце можно использовать основное приложение Portal for ArcGIS.
Индексированный слой 3D сцены REST (.i3sREST)
Формат .i3sREST основан на JSON, REST и современных веб-стандартах. Формат .i3sREST оптимизирован для обработки, анализа и отрисовки веб-клиентов при хранении в облачных хранилищах, например, хранилищах Amazon S3, Azure Blob,Alibaba OSS или Google Cloud. Формат .i3sREST обслуживается непосредственно из хранилища данных, это обеспечивает улучшенную масштабируемость в ArcGIS Enterprise.
Готовый к использованию формат .i3sREST лучше всего подходит для ресурсов слоя сцен, размер которых превышает 200 ГБ. Вы можете создать .i3sREST в AllSource. После того, как ресурс слоя сцены станет доступным в облачном хранилище, вы можете опубликовать его как слой сцены с помощью ArcGIS API for Python на ArcGIS Enterprise 10.8.1 и выше.
Распакованный пакет слоя сцены (.eslpk)
Формат .eslpk представляет неархивированную директорию папок с пакетом слоя сцены, которая подходит для файловых систем. Этот формат I3S можно обслуживать с помощью обработчика листов, предназначенного для работы с расширениями файлов. Распакованные пакеты слоя сцены предназначены для ArcGIS Enterprise.
Вы можете создать распакованный пакет слоя сцены с помощью инструмента Извлечь пакет. После того, как содержимое слоя сцены станет доступным в директориях файловой системы или в локальном хранилище объектов, совместимом с Amazon S3, таком как MinIO, вы можете опубликовать его как слой сцены с помощью ArcGIS API for Python в ArcGIS Enterprise 10.8.1 и выше.
Примечание:
Содержимое слоя сцены в форматах .eslpk или .i3sREST не поддерживается в ArcGIS Online.
I3S – Сервис индексированного слоя 3D-сцен
В дополнение к .slpk, .i3sREST и .eslpk вы можете создать слой сцены непосредственно в ArcGIS Enterprise или ArcGIS Online, опубликовав отдельные слои веб-сцен или веб-сцены из AllSource. 3D-точки, мультипатч или слои зданий можно опубликовать с помощью связанного векторного слоя. Это обеспечивает дополнительные возможности анализа и редактирования, которые недоступны для слоев веб-сцены, опубликованных из пакетов слоев сцены.
Инструменты, создающие ресурс слоя сцены
AllSource поддерживает создаине ресурса слоя сцены в разных форматах в следующих инструментах геообработки.
Инструмент геообработки | Ресурс слоя сцены |
---|---|
Создать ресурсы слоя сцены 3D-объектов | .slpk, .i3sREST |
Создать ресурсы слоя зданий сцены | .slpk, .i3sREST |
Создать ресурсы слоя сцены интегрированной модели mesh | .slpk |
Создать ресурсы слоя сцены точек | .slpk, .i3sREST |
Создать ресурсы слоя сцены облаков точек | .slpk |
Создать ресурс слоя сцены вокселов | .slpk |
Распаковать | .eslpk, .i3sREST |
Обновить слой сцены | .slpk, .eslpk, .i3sREST |
Публикация слоя сцены с помощью ArcGIS API for Python
Слои сцены в форматах .eslpk или .i3sREST могут быть опубликованы в ArcGIS Enterprise с помощью ArcGIS API for Python.
Примечание:
Необходимо следующее:
- Ресурс слоя сцены в готовом для обслуживания формате
- Права роли Publisher в ArcGIS Enterprise
- Добавьте местоположение, где находится ресурс слоя сцены, в качестве элемента хранилища данных на свой портал. см. Элементы облачного хранилища, чтобы узнать, как настроить строку подключения для поддерживаемых облачных хранилищ.
import json from arcgis.gis import GIS # Connect to your GIS # Create a connection to your portal for publishing gis=GIS(url="https://my_portal_name/portal", username="my_username", password="my_pwd") # Step 1a. Create a user managed data store item configuration for AWS cloud store with scene content # path to the i3srest content ds_config = {"provider": "amazon", "type": "cloudStore", "path": "/cloudStores/mys3", "info": {"isManaged": False, "connectionString": "{\"credentialType\":\"accesskey\",\"accessKeyId\":\"MY_ACCESS_KEY\", \"secretAccessKey\":\"MY_SECRET_ACCESS_KEY\",\"region\":\"us-west-1\", \"defaultEndpointsProtocol\":\"https\"}", "objectStore": "MY_AWS_BUCKET"}} txt = json.dumps(ds_config) txt = json.dumps(ds_config) # Step1b. # Add data store as an item to my portal ds_item = gis.content.add( { 'title' : "title_for_my_folder_data_store", 'type' : "Data Store",# must be this 'tags' : "Scene content", 'text' : txt }) ds_item
- Зарегистрируйте папку или облачное хранилище данных на подходящем интегрированном сервере на портале ArcGIS Enterprise.
# Step 2: Register the data store item to a server federated to ArcGIS Enterprise # The server can be either Hosting or Federated server server_list = gis.admin.federation.servers server_list server_id = None for server in server_list['servers']: if server['serverRole'] == 'HOSTING_SERVER': server_id = server['id'] break if server_id is None: raise Exception("Cannot find HOSTING SERVER on this Enterprise configuration") server_id gis.datastore.register(item=ds_item, server_id=server_id)
- Пролистайте содержимое хранилища данных, чтобы выбрать папку с нужным ресурсом слоя сцены.
## Step 3. List the contents of my data store item ds = gis.datastore desc = ds.describe(item=ds_item.id, server_id=server_id, path='/', store_type='datastore').result() cache_store_id = desc['definition']['datastoreId']
- Опубликуйте ресурс слоя сцены, находящийся в хранилище данных.
## Step 4a. Create a dictionary for your service configuration service_conf= { "type": "SceneServer", "serviceName": "name_of_scene_layer", "properties": { "pathInCachedStore" : "/myscene_content.i3srest", "cacheStoreId": cache_store_id, } } service_conf ## Step 4b. Publish the scene layer content ## located in data store managed by you as a scene layer ds.publish(config=service_conf, server_id=server_id, folder="/", description="pointsceneLayer by python API", tags="pythonAPI test").result() ## My scene layer is published and now is serving content directly from my data store
Слой сцены теперь опубликован из облачного хранилища.