當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python ArcGIS derive_new_locations用法及代碼示例


本文簡要介紹 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.png

derive_new_locations 方法從滿足您指定的查詢的輸入圖層派生新特征。查詢由一個或多個表達式組成。有兩種類型的表達式:屬性和空間。屬性表達式的一個示例是宗地必須是空的,這是宗Map層的一個屬性 (STATUS = ‘VACANT’)。空間表達式的一個示例是,宗地也必須在河流的一定距離內(距離河流 0.75 英裏範圍內的宗地)。

derive_new_locations 方法與find_existing_locations 方法非常相似,主要區別在於derive_new_locations 的結果可以包含部分特征。

  • 在這兩種方法中,屬性表達式where 以及其中的空間關係和包含返回相同的結果。這是因為這些關係會返回整個特征。

  • 當使用intersectswithin_distance 時,derive_new_locations 在結果中創建新特征。例如,當一個宗地要素和一個部分重疊的洪水區相交時,find_existing_locations 將返回整個宗地,而derive_new_locations 將僅返回洪水區內的部分宗地。

Parameter

Description

input_layers

所需的要素圖層列表。將在表達式參數中使用的圖層列表。列表中的每一層可以是:

  • 具有可選過濾器以選擇特定要素的要素服務圖層,或

  • 一個特征集合

expressions

必需的字典。有兩種類型的表達式,屬性和空間。

示例屬性表達式:

{
“operator”: “and”,
“layer”: 0,
“where”: “STATUS = ‘VACANT’”
}
注意:
  • 運算符可以是 andor

  • 層是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”
}
  • 運算符可以是 andor

  • layer 是the input_layers 參數中圖層的索引。表達式的結果就是這一層的特征。

  • spatialRel 是空間關係。有九種空間關係。

  • distance 是用於 withinDistance 和 notWithinDistance 空間關係的距離。

  • 單位是距離的單位。

spatialRel

Description

相交

不相交

intersect

如果圖層中的要素與選擇圖層中要素的任何部分重疊,則圖層中的要素通過相交測試,包括觸摸(要素共享公共點)。

  • intersects-If 層中的特征與選擇層中的特征相交,層中的特征與選擇層中的特征相交的部分包含在輸出中。

  • notintersects-If 層中的特征與選擇層中的特征相交,層中與選擇層中的特征相交的部分從輸出中排除。

距離內

不在距離內

distance

距離內關係使用圖層中要素與選擇圖層中要素之間的直線距離。 withinDistance-The 圖層中位於選擇圖層中要素指定距離內的要素部分包含在輸出中。 notwithinDistance-The 圖層中位於選擇圖層中要素指定距離內的要素部分將從輸出中排除。你可以把這種關係想象成“比”更遠。

包含

不包含

intersect

如果層中的特征完全包圍選擇層中的特征,則層中的特征通過此測試。沒有包含特征的部分;但是,包含的要素可以接觸包含要素(即,沿其邊界共享一個公共點)。

contains-If 層中的特征包含選擇層中的特征,層中的特征包含在輸出中。 notcontains-If layer in a feature contains a feature in selectionLayer,第一層的特征被排除

之內

不在範圍內

within

如果層中的特征完全被選擇層中的特征包圍,則層中的特征通過此測試。整個要素圖層必須在包含要素內;但是,允許這兩個特征接觸(即,沿其邊界共享一個公共點)。

  • within-If 層中的特征完全在選擇層中的特征內,層中的特征包含在輸出中。

  • notwithin-If 層中的特征完全在選擇層中的特征內,層中的特征被排除在輸出之外。

注意:

可以對點和線使用 within 關係,就像使用 contains 關係一樣。例如,您的第一層包含代表沙井蓋的點,並且您想要查找位於街道中心線上的沙井(與停車場或其他非街道特征相反)。您可以使用 within 來查找街道中心線內的檢修孔點,但為了使點包含一條線,該點必須正好在線上(即,在 GIS 術語中,它們相互捕捉)。如果對此有任何疑問,請使用具有合適距離值的 withinDistance 關係。

nearest

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')

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.features.analysis.derive_new_locations。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。