当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。