Skip to main content

This python package is the ArcGIS Earth Automation API. You can use this package to call some functions of ArcGIS Earth.

Dependencies

  • urllib3 (1.15 or greater)
  • six (1.10 or greater)
  • certifi
  • python-dateutil
  • requests
  • od

Installation

This package can be installed from the Python Package Index.

$ pip install earth-api

Usage

Import

You can use the following command to import the package.

>>> from earth_api import EarthAPI

Examples

Get the current camera information

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, camera = earth.get_camera()
>>> status_code
200
>>> camera
{'position': {'x': -92.0, 'y': 41.0, 'z': 11000000.0, 'spatial_reference': {'wkid': 4326}}, 'heading': 0.0, 'tilt': 0.0, 'roll': 0.0}

Set the camera position

The following codes are an example of the camera position.

camera_dict = {
            "position": {
                "x": 113.59647525051167,
                "y": 32.464715999412107,
                "z": 2213290.0751730204,
                "spatialReference": {
                    "wkid": 4326
                },
                "heading": 354.04823651174161,
                "tilt": 19.96239543740441
            }
        }

Then, you can set the camera position.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.set_camera(camera_dict)
(200, {'result': 'Success'})

Set the flight target

The following codes are an example of flight information.

flight_dict = {
            "camera":{
            "position":{
                "x":-92,
                "y":41,
                "z":11000000,
                "spatialReference":{
                    "wkid":4326
                }
            },
            "heading":0.0,
            "tilt":0.099999999996554886
        },
        "duration":2
    }

Then, you can set the flight.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.set_flight(flight_dict)
(200, {'result': 'Success'})

Add a layer

The following codes are an example of layer information.

layer_dict = {
                "type":"MapService",
                "URI" :"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
                "target" :"OperationalLayers"
            }

Then, you can add the layer to ArcGIS Earth.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, layer_infor = earth.add_layer(layer_dict)
>>> status_code
200
>>> layer_infor
{'id': '91713d46-45f3-4bc4-9c82-38384905f1e1', 'opacity': 1.0, 'displayName': 'World_Imagery', 'isVisible': True, 'classType': 'Tiled_Layer', 'sourceURI': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', 'brightness': 0.0, 'contrast': 0.0, 'gamma': 0.0, 'lastTilingScheme': 'WebMercator', 'surfacePlacement': 'DrapedBillboarded', 'elevationOffset': 0.0, 'loadStatus': 'Loaded'}

Get the target layer information

You can get the target layer information according to the layer id.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, layer_infor = earth.get_layer("91713d46-45f3-4bc4-9c82-38384905f1e1")
>>> status_code
200
>>> layer_infor
{'id': '91713d46-45f3-4bc4-9c82-38384905f1e1', 'opacity': 1.0, 'displayName': 'World_Imagery', 'isVisible': True, 'classType': 'Tiled_Layer', 'sourceURI': 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer', 'brightness': 0.0, 'contrast': 0.0, 'gamma': 0.0, 'lastTilingScheme': 'WebMercator', 'surfacePlacement': 'DrapedBillboarded', 'elevationOffset': 0.0, 'loadStatus': 'Loaded'}

Remove the target layer

You can remove the target layer according to the layer id.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_layer("91713d46-45f3-4bc4-9c82-38384905f1e1")
(200, {'result': 'Success'})

Clear layers

You can clear all layers according to the following command.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_layers()
(200, {})

Add the target graphic

The following codes are an example of a graphic.

graphic_dict = {
                "id": "point-picture-marker-graphic-js",
                "geometry": {
                    "type": "point",
                    "x": -100,
                    "y": 40
                },
                "symbol": {
                    "type": "picture-marker",
                    "url": "https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png",
                    "width": "64px",
                    "height": "64px",
                    "angle": 0,
                    "xoffset": "10px",
                    "yoffset": "10px"
                }
            }

Then, you can add the graphic to ArcGIS Earth.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, graphic_infor = earth.add_graphic(graphic_dict)
>>> status_code
201
>>> graphic_infor
{'id': 'point-picture-marker-graphic-js', 'geometry': {'x': -100, 'y': 40, 'type': 'point'}, 'symbol': {'angle': 0, 'height': 48, 'type': 'picture-marker', 'url': 'https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png', 'width': 48, 'xoffset': 7.5, 'yoffset': 7.5}}

Get the target graphic information

You can get the graphic information according to the graphic id.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, graphic_infor = earth.get_graphic('point-picture-marker-graphic-js')
>>> status_code
200
>>> graphic_infor
{'id': 'point-picture-marker-graphic-js', 'geometry': {'x': -100, 'y': 40, 'type': 'point'}, 'symbol': {'angle': 0, 'contentType': 'image/png', 'height': 48, 'type': 'picture-marker', 'url': 'https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png', 'width': 48, 'xoffset': 7.5, 'yoffset': 7.5}}

Update the graphic

You can update the graphic according to the new graphic information.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.update_graphic(new_graphic_dict)
(204, {})

Remove the target graghic

You can remove the graphic according to the graphic id.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_graphic("point-picture-marker-graphic-js")
(204, {})

Clear graghics

You can clear graphics according to the following codes.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_graphics()
(204, {})

Add a drawing

The following codes are a drawing example.

drawing_dic = {
                "id": "point graphic sample",
                "title": "point graphic sample",
                "geometry": {
                    "x": -100,
                    "y": 40,
                    "spatialReference": {
                        "wkid": 4326
                    }
                },
                "symbol": {
                    "type": "picture-marker",
                    "url": "https://static.arcgis.com/images/Symbols/Shapes/BlackStarLargeB.png",
                    "width": "30px",
                    "height": "30px"
                },
                "labelSymbol": {
                    "type": "text",
                    "color": [
                        100,
                        100,
                        100,
                        255
                    ],
                    "font": {
                        "size": 24
                    }
                }
            }

Then, you can add a drawing to ArcGIS Earth.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, drawing_infor = earth.add_drawing(drawing_dic)
>>> status_code
201
>>> drawing_infor
{'id': 'point graphic sample', 'result': 'Success'}

Remove the target drawing

You can remove the target drawing according to the drawing id.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.remove_drawing('point graphic sample')
(204, {})

Clear drawings

You can clear all drawings according to the following codes:

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_drawings()
(204, {})

Get the current workspace

You can get the current workspace of ArcGIS Earth.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> status_code, workspace_infor = earth.get_workspace()
>>> status_code
200
>>> workspace_infor
{'url': 'http://localhost:8000/workspaces/f47b11cf-5dee-4f92-a528-6bc870b87874.zip', 'path': 'C:\\Users\\username\\Documents\\ArcGISEarth\\automation\\workspaces\\f47b11cf-5dee-4f92-a528-6bc870b87874.zip'}

Import the target workspace

You can import the target workspace according to the workspace information.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> workspace_dict = {
                "url":"http://localhost:6080/workspace.zip",
                "path":"C:\\Users\\Administrator\\Desktop\\workspace.zip",
            }
>>> earth.import_workspace(workspace_dict)
(200, {'result': 'Success'})

Clear the current workspace

You can clear the current workspace.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.clear_workspace()
(200, {'result': 'Success'})

Get the snapshot

You can get the current snapshot of ArcGIS Earth.

>>> from earth_api import EarthAPI
>>> earth = EarthAPI()
>>> earth.get_snapshot()
(200, <urllib3.response.HTTPResponse object at 0x0000027BB2FBB190>)

Metadata

Release files for earth-api 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for earth-api 0.0.5
File Size Uploaded Provenance Actions
earth_api-0.0.5.tar.gz 26.4 kB Without provenance Details for earth_api-0.0.5.tar.gz

Release files / earth_api-0.0.5.tar.gz

Download URL earth_api-0.0.5.tar.gz
Size 26.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c964251aa1b1d184ccad7c8daa5e63a47723f3dcbec99b56c7aa853bed628f3a
BLAKE2b-256 checksum
How to use checksums
66995b6f343f87516c8e9a23a614963ecc1406dcdd86d1ed741ed34639359a1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Security for earth-api 0.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page