本文简要介绍 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' )
相关用法
- Python ArcGIS Country.enrich_variables用法及代码示例
- Python ArcGIS Country.subgeographies用法及代码示例
- Python ArcGIS Country.travel_modes用法及代码示例
- Python ArcGIS ContentManager.unshare_items用法及代码示例
- Python ArcGIS ContentManager.delete_folder用法及代码示例
- Python ArcGIS ContentManager.replace_service用法及代码示例
- Python ArcGIS ContentManager.advanced_search用法及代码示例
- Python ArcGIS ContentManager.can_delete用法及代码示例
- Python ArcGIS ContentManager.create_service用法及代码示例
- Python ArcGIS ContentManager.create_folder用法及代码示例
- Python ArcGIS ContentManager.share_items用法及代码示例
- Python ArcGIS ContentManager.rename_folder用法及代码示例
- Python ArcGIS ContentManager.clone_items用法及代码示例
- Python ArcGIS ContentManager.add用法及代码示例
- Python ArcGIS ContentManager.search用法及代码示例
- Python ArcGIS ContentManager.bulk_update用法及代码示例
- Python ArcGIS ContentManager.delete_items用法及代码示例
- Python ArcGIS ContentManager.generate用法及代码示例
- Python ArcGIS ContentManager.analyze用法及代码示例
- Python ArcGIS ContentManager.is_service_name_available用法及代码示例
- Python ArcGIS CiscoEdgeIntelligence用法及代码示例
- Python ArcGIS CategoryManager.add用法及代码示例
- Python ArcGIS CreditManager用法及代码示例
- Python ArcGIS CategorySchemaManager.delete用法及代码示例
- Python ArcGIS CertificateManager.delete用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.geoenrichment.Country.enrich。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。