本文簡要介紹 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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。