當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python ArcGIS GIS用法及代碼示例


本文簡要介紹 python 語言中 arcgis.gis.GIS 的用法。

用法:

class arcgis.gis.GIS(url=None, username=None, password=None, key_file=None, cert_file=None, verify_cert=True, set_active=True, client_id=None, profile=None, **kwargs)

GIS 類代表單個 ArcGIS Online 組織或 ArcGIS Enterprise 部署。 GIS 對象提供幫助對象來管理(搜索、創建、檢索)GIS 資源,例如內容、用戶和組。

此外,GIS 對象具有查詢其狀態的屬性,可使用 properties 屬性訪問。

注意:

GIS 提供了一個Map小部件,可在 Jupyter Notebook 環境中使用,用於可視化 GIS 內容以及分析結果。要創建新Map,請調用map方法。不再支持 IE11。請使用最新版本的 Google Chrome、Mozilla Firefox、Apple Safari 或 Microsoft Edge。

構造函數構造一個 GIS 對象,給定一個 URL 和用戶憑據到 ArcGIS Online 或 ArcGIS Enterprise 門戶。可以使用用戶名/密碼對或key_file/cert_file 對(在 PKI 的情況下)傳遞用戶憑據。支持內置用戶、LDAP、PKI、集成 Windows 身份驗證(使用 NTLM 和 Kerberos)和匿名訪問。

如果未提供 url,則使用 ArcGIS Online。如果未提供用戶名/密碼或 key /證書文件,則使用當前 logged-in 用戶的憑據 (IWA) 或匿名訪問。

可以通過提供 GIS 授權憑據並指定配置文件名稱來創建 GIS 的持久配置文件。該配置文件將所有授權憑證(密碼除外)存儲在用戶主目錄中名為 .arcgisprofile 的未加密配置文件中。配置文件將密碼安全地存儲在操作係統中。特定密碼管理器通過keyring python 模塊。

注意:

Linux 係統可能需要安裝和配置額外的軟件以獲得適當的安全性。

保存配置文件後,傳遞配置文件參數本身會使用該配置文件名稱保存在配置文件/密碼管理器中的授權憑據。可以並行創建和使用多個配置文件。

有關示例,請參閱ArcGIS API for Python 指南中的Working with different authentication schemes

Parameter

Description

url

可選字符串。如果 URL 為 None,則 URL 將為 ArcGIS Online。這應該是ArcGIS Enterprise 門戶或ArcGIS Online 的網址,格式為::///。 Enterprise 示例的格式為:https://gis.example.com/portal

username

可選字符串。登錄用戶名(區分大小寫)。

password

可選字符串。如果提供了用戶名,則需要密碼。這是區分大小寫的。如果未提供密碼,則會在交互式對話框中提示用戶。

key_file

可選字符串。用於 PKI 身份驗證的用戶 key 證書的文件路徑

cert_file

可選字符串。用於 PKI 身份驗證的用戶證書文件的文件路徑。如果使用 PFX 或 P12 證書,則需要密碼。如果使用 PEM 文件,則需要 key_file。

verify_cert

可選的布爾值。如果站點具有無效的 SSL 證書或正在通過 IP 或主機名而不是證書上的名稱訪問,請將此值設置為 False 。這將確保忽略所有 SSL 證書問題。默認值為 True

警告:

將該值設置為False 可能存在安全風險。

set_active

可選的布爾值。默認值為真。如果為 True,則 GIS 對象將在整個腳本會話期間用作默認 GIS 對象。

client_id

可選字符串。用於 OAuth 身份驗證。這是客戶端 ID 值。

profile

可選字符串。用戶希望用來進行身份驗證的配置文件的名稱,如果設置,標識的配置文件將用於登錄到指定的 GIS。

除了顯式命名的參數外,GIS 對象還支持可選的關鍵字參數:

關鍵字參數:

  • proxy_host: 可選字符串。用於允許在運行腳本的網絡中進行 HTTP/S 訪問的代理服務器的主機名。 例如:127.0.0.1
  • use_gen_token: 可選布爾值。默認為 False 。使用generateToken 登錄而不是OAuth2 登錄。
  • proxy_port: 可選整數。代理主機端口。默認值為 80。
  • token: 可選字符串。這是內置登錄的企業令牌。僅當用戶名/密碼為 None 並且站點的安全性使用 BUILT-IN 安全性時,才使用此參數。
  • api_key: 可選字符串。這是開發人員站點生成的 key ,用於允許 REST API 函數的有限子集。
  • trust_env: 可選布爾值。代理配置、默認身份驗證等的信任環境設置。如果False GIS 類將忽略係統上定義的netrc 文件。
  • proxy: 可選字典。如果您需要使用代理,您可以為任何請求方法配置帶有代理參數的單個請求。有關示例用法,請參見`Usage Exmaple 9: Using a Proxy`
    使用示例
    {
    “http”:“http://10.343.10.22:111”,“https”:“https://127.343.13.22:6443
    }
  • expiration: 可選整數。默認值為 60 分鍾。給定令牌的到期時間。這用於用戶提供的令牌和 API key 。
  • validate_url: 可選布爾值。默認值為 False。用戶可以選擇驗證 Item 的 url 上的 URL。
  • mutual_authentication: 可選字符串。相互身份驗證是一項安全函數,其中客戶端進程必須向服務證明其身份,並且服務必須在通過客戶端/服務連接傳輸任何應用程序流量之前向客戶端證明其身份。
    • 必需 - 默認情況下,API 需要相互
      來自服務器的身份驗證,以及服務器是否發出無法進行身份驗證的非錯誤響應。
    • 可選 - 這將導致 API 嘗試相互
      如果服務器通告它支持它,則進行身份驗證,如果身份驗證失敗,則導致失敗,但如果服務器根本不支持,則不會。
    • 已禁用 - 從不嘗試相互身份驗證,這不是
      受到推崇的。
  • force_preemptive: 如果您使用 Kerberos 身份驗證,則可以強製它搶先啟動 Kerberos GSS 交換,並在初始請求(以及所有後續請求)上提供 Kerberos 票證。默認情況下,僅在從源服務器收到包含 Kerberos 或 Negotiate 質詢的 401 Unauthorized 響應後才會進行身份驗證。這可能會導致使用持久連接(例如 Windows/WinRM)的主機相互身份驗證失敗,因為在初始身份驗證握手後不會發送 Kerberos 質詢。可以通過設置force_preemptive=True 來更改此行為。默認為假
  • hostname_override: 可選字符串。如果與 DNS 名稱與其 kerberos 主機名不匹配的主機(例如,在內容交換機或負載均衡器後麵)進行通信,則可以通過設置此值來覆蓋用於 Kerberos GSS 交換的主機名。
  • delegate: 可選布爾值。 Kerberos 支持憑據委派 (GSS_C_DELEG_FLAG)。要啟用將憑據委派給請求委派的服務器,請傳遞 delegate=True 。請小心,僅允許委派給您信任的服務器,因為它們將能夠使用委派的憑據來模擬您。

示例 1:

# Usage Example 1: Anonymous Login to ArcGIS Online

gis = GIS()

示例 2:

# Usage Example 2: Built-in Login to ArcGIS Online

gis = GIS(username="someuser", password="secret1234")

示例 3:

# Usage Example 3: Built-in Login to ArcGIS Enterprise

gis = GIS(url="http://pythonplayground.esri.com/portal",
      username="user1", password="password1")

示例 4:

# Usage Example 4: Built-in Login to ArcGIS Enterprise, ignoring SSL errors

gis = GIS(url="http://pythonplayground.esri.com/portal", username="user1",
          password="password1", verify_cert=False)

示例 5:

# Usage Example 5: Anonymous ArcGIS Online Login with Proxy

gis = GIS(proxy_host='127.0.0.1', proxy_port=8888)

示例 6:

# Usage Example 6: PKI Login to ArcGIS Enterprise, using PKCS12 user certificate

gis = GIS(url="https://pkienterprise.esri.com/portal",
          cert_file="C:\users\someuser\mycert.pfx", password="password1")

示例 7:

# Usage Exmaple 7: Login with token (actual token abbreviated for this illustration)

gis = GIS(token="3G_e-FSoJdwxBgSA0RiOZg7zJVVqlOG-ENw83UtoUzDdz4 ... _L2aQMrthrEq7vKYBn39HGSc.",
          referer="https://www.arcgis.com")

示例 8:

# Usage Exmaple 8: Login with API Key (actual token abbreviated for this illustration)

gis = GIS(api_key="APKSoJdwxBgSA0RiOZg7zJVVqlOG-ENw83UtoUzDdz4 ... _L2aQMrth39HGSc.",
          referer="https")

示例 9:

# Usage Exmaple 9: Using a Proxy
proxy = {
    'http': 'http://10.10.1.10:3128',
    'https': 'http://10.10.1.10:1080',
}
gis = GIS(proxy=proxy)

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.gis.GIS。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。