本文簡要介紹 python 語言中 arcgis.features.analysis.derive_new_locations
的用法。
用法:
arcgis.features.analysis.derive_new_locations(input_layers=[], expressions=[], output_name=None, context=None, gis=None, estimate=False, future=False)
返回:
FeatureLayer
如果指定了 output_name,否則為FeatureCollection
。
derive_new_locations
方法從滿足您指定的查詢的輸入圖層派生新特征。查詢由一個或多個表達式組成。有兩種類型的表達式:屬性和空間。屬性表達式的一個示例是宗地必須是空的,這是宗Map層的一個屬性 (STATUS = ‘VACANT’)。空間表達式的一個示例是,宗地也必須在河流的一定距離內(距離河流 0.75 英裏範圍內的宗地)。derive_new_locations
方法與find_existing_locations
方法非常相似,主要區別在於derive_new_locations
的結果可以包含部分特征。在這兩種方法中,屬性表達式
where
以及其中的空間關係和包含返回相同的結果。這是因為這些關係會返回整個特征。當使用
intersects
或within_distance
時,derive_new_locations
在結果中創建新特征。例如,當一個宗地要素和一個部分重疊的洪水區相交時,find_existing_locations
將返回整個宗地,而derive_new_locations
將僅返回洪水區內的部分宗地。
Parameter
Description
input_layers
所需的要素圖層列表。將在表達式參數中使用的圖層列表。列表中的每一層可以是:
具有可選過濾器以選擇特定要素的要素服務圖層,或
一個特征集合
expressions
必需的字典。有兩種類型的表達式,屬性和空間。
示例屬性表達式:
{“operator”: “and”,“layer”: 0,“where”: “STATUS = ‘VACANT’”}注意:運算符可以是
and
或or
層是
input_layers
參數中層的索引。where 子句必須用雙引號引起來。
處理文本字段時,值必須用單引號引起來(‘VACANT’)。
日期字段支持除 LIKE 之外的所有查詢。日期是 YYYY:MM:DD hh:mm:ss 格式的字符串。以下是使用日期字段 ObsDate 的示例:“where”: “ObsDate >= ‘1998-04-30 13:30:00’ “
=
Equal
>
比...更棒
<
少於
>=
大於或等於
<=
小於或等於
<>
不相等
喜歡'% <字符串>'
百分號 (%) 表示通配符,表示其 place-one 字符、一百個字符或無字符均可接受。此表達式將在美國州名中選擇密西西比州和密蘇裏州:STATE_NAME LIKE ‘Miss%’
<value1> 和 <value2> 之間
如果記錄的值大於或等於 <value1> 且小於或等於 <value2>,則選擇該記錄。例如,此表達式選擇 HHSIZE 值大於或等於 3 且小於或等於 10 的所有記錄:
HHSIZE 介於 3 和 10 之間
以上等價於:
HHSIZE >= 3 AND HHSIZE <= 10 此運算符適用於數字或日期字段。以下是字段 ObsDate 上的日期查詢示例:
ObsDate 在‘1998-04-30 00:00:00’和‘1998-04-30 23:59:59’之間
時間是可選的。
不在 <value1> 和 <value2> 之間
如果記錄的值超出 <value1> 和小於或等於 <value2> 的範圍,則選擇該記錄。例如,此表達式選擇 HHSIZE 值小於 5 且大於 7 的所有記錄。
HHSIZE 不在 5 和 7 之間
以上等價於:
HHSIZE < 5 或 HHSIZE > 7 此運算符適用於數字或日期字段。
您可以使用包含點和線的關係。例如,您有一層街道中心線(線)和一層井蓋(點),並且您想要查找包含井蓋的街道。您可以使用 contains 來查找包含井蓋的街道,但要使一條線包含一個點,該點必須正好在線上(即,在 GIS 術語中,它們相互捕捉)。如果對此有任何疑問,請使用具有合適距離值的 withinDistance 關係。
空間表達示例:
{“operator”: “and”,“layer”: 0,“spatialRel”: “withinDistance”,“selectingLayer”: 1,“distance”: 10,“units”: “miles”}運算符可以是
and
或or
layer 是
the input_layers
參數中圖層的索引。表達式的結果就是這一層的特征。spatialRel 是空間關係。有九種空間關係。
distance 是用於 withinDistance 和 notWithinDistance 空間關係的距離。
單位是距離的單位。
spatialRel
Description
相交
不相交
如果圖層中的要素與選擇圖層中要素的任何部分重疊,則圖層中的要素通過相交測試,包括觸摸(要素共享公共點)。
intersects-If 層中的特征與選擇層中的特征相交,層中的特征與選擇層中的特征相交的部分包含在輸出中。
notintersects-If 層中的特征與選擇層中的特征相交,層中與選擇層中的特征相交的部分從輸出中排除。
距離內
不在距離內
距離內關係使用圖層中要素與選擇圖層中要素之間的直線距離。 withinDistance-The 圖層中位於選擇圖層中要素指定距離內的要素部分包含在輸出中。 notwithinDistance-The 圖層中位於選擇圖層中要素指定距離內的要素部分將從輸出中排除。你可以把這種關係想象成“比”更遠。
包含
不包含
如果層中的特征完全包圍選擇層中的特征,則層中的特征通過此測試。沒有包含特征的部分;但是,包含的要素可以接觸包含要素(即,沿其邊界共享一個公共點)。
contains-If 層中的特征包含選擇層中的特征,層中的特征包含在輸出中。 notcontains-If layer in a feature contains a feature in selectionLayer,第一層的特征被排除
之內
不在範圍內
如果層中的特征完全被選擇層中的特征包圍,則層中的特征通過此測試。整個要素圖層必須在包含要素內;但是,允許這兩個特征接觸(即,沿其邊界共享一個公共點)。
within-If 層中的特征完全在選擇層中的特征內,層中的特征包含在輸出中。
notwithin-If 層中的特征完全在選擇層中的特征內,層中的特征被排除在輸出之外。
注意:
可以對點和線使用 within 關係,就像使用 contains 關係一樣。例如,您的第一層包含代表沙井蓋的點,並且您想要查找位於街道中心線上的沙井(與停車場或其他非街道特征相反)。您可以使用 within 來查找街道中心線內的檢修孔點,但為了使點包含一條線,該點必須正好在線上(即,在 GIS 術語中,它們相互捕捉)。如果對此有任何疑問,請使用具有合適距離值的 withinDistance 關係。
nearest
如果第一層中的特征最接近第二層中的特征,則它通過此測試。
nearest-If 第一層的特征與第二層的特征最接近,第一層的特征包含在輸出中。
output_name
可選字符串或
FeatureLayer
。現有要素圖層將導致新圖層附加到要素服務。如果 overwrite 在上下文中為 True,則新層將覆蓋現有層。如果未指示output_name,則創建新的FeatureCollection
。context
可選字典。處理範圍和輸出空間參考等附加設置。對於derive_new_locations,有三個設置。
extent
- 定義分析區域的邊界框。僅分析input_layer 中與邊界框相交的那些特征。outSR
- 輸出要素將投影到wkid
引用的輸出空間參考中。overwrite
- 如果為 True,則 output_name 中的要素層將被新要素層覆蓋。適用於 ArcGIS Online 或 Enterprise 10.9.1+# Example Usage context = {"extent": {"xmin": 3164569.408035, "ymin": -9187921.892449, "xmax": 3174104.927313, "ymax": -9175500.875353, "spatialReference":{"wkid":102100,"latestWkid":3857}}, "outSR": {"wkid": 3857}, "overwrite": True}
gis
可選,運行此工具的
GIS
。如果未指定,則使用活動 GIS。estimate
可選的布爾值。為真,運行操作所需的積分數將作為浮點數返回。
future
可選,如果為 True,將返回未來對象,並且進程不會等待任務完成。默認為False,表示等待結果。
例子:
# USAGE EXAMPLE: To Identify areas that are suitable cougar habitat using the criteria defined by experts. new_location = derive_new_locations(input_layers=[slope, vegetation, streams, highways], expressions=[{"operator":"","layer":0,"selectingLayer":1,"spatialRel":"intersects"}, {"operator":"and","layer":0,"selectingLayer":2,"spatialRel":"withinDistance","distance":500,"units":"Feet"}, {"operator":"and","layer":0,"selectingLayer":3,"spatialRel":"notWithinDistance","distance":1500,"units":"Feet"}, {"operator":"and","layer":0,"where":"GRIDCODE = 1"}], output_name='derive_new_loactions')
相關用法
- Python ArcGIS describe_dataset用法及代碼示例
- Python ArcGIS delete_image用法及代碼示例
- Python ArcGIS detect_incidents用法及代碼示例
- Python ArcGIS delete_image_collection用法及代碼示例
- Python arcgis.learn.detect_objects用法及代碼示例
- Python ArcGIS detect_change_using_change_analysis_raster用法及代碼示例
- Python ArcGIS define_nodata用法及代碼示例
- Python ArcGIS densify用法及代碼示例
- Python ArcGIS divide用法及代碼示例
- Python ArcGIS dimensional_moving_statistics用法及代碼示例
- Python ArcGIS dissolve_boundaries用法及代碼示例
- Python ArcGIS power用法及代碼示例
- Python ArcGIS APIKeyManager.get用法及代碼示例
- Python ArcGIS KnowledgeGraph.named_object_type_delete用法及代碼示例
- Python ArcGIS ContentManager.unshare_items用法及代碼示例
- Python ArcGIS ImageryLayer.thumbnail用法及代碼示例
- Python ArcGIS FormFieldElement用法及代碼示例
- Python ArcGIS Geometry.true_centroid用法及代碼示例
- Python ArcGIS Site.delete用法及代碼示例
- Python ArcGIS GeoAccessor.bbox用法及代碼示例
- Python arcgis.apps.hub.Initiative.update用法及代碼示例
- Python ArcGIS generate_service_areas用法及代碼示例
- Python ArcGIS build_overview用法及代碼示例
- Python ArcGIS RunInterval用法及代碼示例
- Python ArcGIS acos用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.features.analysis.derive_new_locations。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。