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


Python ArcGIS Country.enrich用法及代码示例


本文简要介绍 python 语言中 arcgis.geoenrichment.Country.enrich 的用法。

用法:

enrich(study_areas, enrich_variables=None, return_geometry=True, standard_geography_level=None, standard_geography_id_column=None, proximity_type=None, proximity_value=None, proximity_metric=None, output_spatial_reference=None, **kwargs)

返回:

具有丰富数据的 Pandas DataFrame。

Enrich 提供对海量数据集的访问,该数据集准确说明了某个地理位置的人员身份。描绘 study_areas 进行丰富的最常见方法是使用多边形描绘区域,但也可以使用点和线。

当提供点或线时,几何形状周围的区域用于丰富。该区域可以使用其他参数来定义,但默认情况下是几何体周围一公里。此外,线几何形状仅支持直线距离,但点可以使用可用的交通网络方法[通常是行驶距离或行驶时间]。

虽然现场分析、商店或设施位置的预测建模已经很流行,但丰富函数提供了对大量数据的访问,以便对人员及其与周围社区、文化、经济甚至自然环境的关系和互动进行分析。简而言之,丰富就是如何获取数据进行人文地理分析。

用于丰富的study_areas可以以多种形式提供:可以提供空间启用的Pandas DataFrame 架或可迭代的。可迭代对象可以由 Geometry 对象实例或标准地理标识符组成。虽然可能会提供其他值,例如字符串地址或 points-of-interest 名称,但建议在执行丰富之前在工作流程中检索这些位置。

Parameter

Description

study_areas

包含要丰富的输入区域的必需列表、字典、 FeatureSet 或 SpatiallyEnabledDataFrame。

enrich_variables

可以使用字符串列表或从 enrich_variables() 属性返回的 Pandas DataFrame 来指定丰富变量。如果使用字符串列表,则这些值将针对 name、‘enrich_name’ 或 ‘enrich_field_name’ 的 enrich_variables() 数据帧列进行匹配。所有值必须与这些列之一匹配。

return_geometry

布尔值,指示是否需要在输出中返回几何图形。默认为 True

standard_geography_level

如果使用标准地理标识符列表,则必须在此处指定地理级别。该值是在 levels() 属性中检索到的 level_name 列。

standard_geography_id_column

如果提供 Pandas DataFrame 作为输入,并且 DataFrame 包含一列,其中包含您希望用于指定输入 study_areas 的标准地理标识符,请在此参数中以字符串形式提供列名称。

proximity_type

如果提供点几何形状作为输入 study_areas,您可以选择提供用于根据可用出行模式创建点周围邻近度的方法。可以使用 travel_modes 属性发现这些出行模式。有效值来自此返回的 DataFrame 中的 name 列。此外,除了交通网络出行模式之外,您还可以选择使用 straight_line ,只需在几何体周围使用直线距离、缓冲区。这是默认设置,也是几何类型为线时的唯一选项。

proximity_value

这是十进制浮点数或整数形式的标量值,定义用于富集的源几何体周围的邻近区域的大小。例如,如果需要五分钟的行驶时间,则该值将为 5

proximity_metric

这是定义用于定义用于浓缩的几何形状周围区域的区域的测量单位。如果有兴趣获得五分钟的车程,该值将为minutes

output_spatial_reference

默认输出为 WGS84 (WKID 4326)。如果需要不同的输出空间参考,请在此处以 WKID 或 SpatialReference 对象实例的形式提供。

hierarchy

要使用的数据集的层次结构。该层次结构是“ID”,可以在hierarchies 属性中找到。如果未提供,将使用默认层次结构。

以下是使用 ArcGIS Pro 与 Business Analyst 和本地安装的美国数据包来丰富一些关键变量的示例。

from arcgis.gis import GIS
from arcgis.geoenrichment import Country

# create country object instance to use local ArcGIS Pro + Business Analyst + USA data pack
usa = Country('usa', gis=GIS('pro'))

# select current year key enrichment variables for analysis
ev_df = usa.enrich_variables
kv_df = ev_df[
    (ev_df.data_collection.str.lower().str.contains('key'))  # key data collection
    & (ev_df.alias.str.lower().str.endswith('cy'))           # current year
]

# get data from ArcGIS Online to enrich as Spatially Enabled DataFrame
itm_id = '15d227c6da8d4b7baf713709ba3693ce'  # USA federal district court polygons
gis = GIS()  # anonymous connection to ArcGIS Online
aoi_df = gis.content.get(itm_id).layers[0].query().sdf

# enrich with variables selected above
enrich_df = usa.enrich(aoi_df, enrich_variables=kv_df)

接下来,我们可以使用 ArcGIS Online 而不是 ArcGIS Pro 来执行类似的工作流程,方法是创建几个点几何形状并在位置周围使用 five-minute 行驶时间。

import os

from arcgis.gis import GIS
from arcgis.geoenrichment import Country
from arcgis.geometry import Geometry
from dotenv import find_dotenv, load_dotenv

# load environment settings from .env file
load_dotenv(find_dotenv())

# create connection to ArcGIS Online organization using values saved in .env file
gis_agol = GIS(
    url=os.getenv('ESRI_GIS_URL'),
    username=os.getenv('ESRI_GIS_USERNAME'),
    password=os.getenv('ESRI_GIS_PASSWORD')
)

# create a country object instance
usa = Country('usa', gis=gis_agol)

# get just key variables for the current year
ev_df = usa.enrich_variables
kv_df = ev_df[
    (ev_df.data_collection.str.lower().str.contains('key'))  # key data collection
    & (ev_df.alias.str.lower().str.endswith('cy'))           # current year
]

# create a couple of point geometries on the fly for the example
coord_lst = [
    (-122.9074835, 47.0450249),  # Bayview Grocery Store
    (-122.8749600, 47.0464031)   # Ralph's Thriftway Grocery Store
]
geom_lst = [Geometry({'x': pt[0], 'y': pt[1], 'spatialReference': {'wkid': 4326}}) for pt in coord_lst]

# enrich the geometries and get a spatially enabled dataframe
enrich_df = usa.enrich(
    study_areas=geom_lst,
    enrich_variables=kv_df,
    proximity_type='driving_time',
    proximity_value=5,
    proxmity_metric='minutes'
)

最后,我们还可以使用标准地理标识符来指定study_areas。

import os

from arcgis.gis import GIS
from arcgis.geoenrichment import Country
from arcgis.geometry import Geometry
from dotenv import find_dotenv, load_dotenv

# load environment settings from .env file
load_dotenv(find_dotenv())

# create connection to ArcGIS Online organization using values saved in .env file
gis_agol = GIS(
    url=os.getenv('ESRI_GIS_URL'),
    username=os.getenv('ESRI_GIS_USERNAME'),
    password=os.getenv('ESRI_GIS_PASSWORD')
)

# create a country object instance
usa = Country('usa', gis=gis_agol)

# get just key variables for the current year
ev_df = usa.enrich_variables
kv_df = ev_df[
    (ev_df.data_collection.str.lower().str.contains('key'))  # key data collection
    & (ev_df.alias.str.lower().str.endswith('cy'))           # current year
]

# the block group ids for Olympia, WA
id_lst = ['530670101001', '530670101002', '530670101003', '530670101004', '530670102001', '530670102002',
          '530670102003', '530670103001', '530670103002', '530670103003', '530670103004', '530670104001',
          '530670104002', '530670104003', '530670105101', '530670105201', '530670105202', '530670105203',
          '530670105204', '530670106001', '530670106002', '530670106003', '530670106004', '530670106005',
          '530670107001', '530670107002', '530670107003', '530670108001', '530670108002', '530670109101',
          '530670109102', '530670109103', '530670110001', '530670111002', '530670112001', '530670113001',
          '530670116211', '530670117101', '530670117102', '530670117103', '530670120002', '530670122121',
          '530670122122', '530670122124', '530670111001', '530670121004']

# enrich the geometries and get a spatially enabled dataframe
enrich_df = usa.enrich(
    study_areas=geom_lst,
    enrich_variables=kv_df,
    standard_geography_level='block_groups'
)

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.geoenrichment.Country.enrich。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。