本文简要介绍 python 语言中 arcgis.features.analysis.find_existing_locations
的用法。
用法:
arcgis.features.analysis.find_existing_locations(input_layers=None, expressions=None, output_name=None, context=None, gis=None, estimate=False, future=False)
返回:
FeatureLayer
如果指定了 output_name,否则为FeatureCollection
。
find_existing_locations
方法选择输入图层中满足您指定的查询的要素。查询由一个或多个表达式组成。有两种类型的表达式:属性表达式和空间表达式。属性表达式的一个示例是地块必须是空的,这是地块图层的一个属性(其中 STATUS = ‘VACANT’)。空间表达式的一个示例是,地块还必须位于距河流一定距离内(距河流 0.75 英里距离内的地块)。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 第一层的特征与第二层的特征最接近,第一层的特征包含在输出中。
distance
是用于 insideDistance 和 notWithinDistance 空间关系的距离。units
是距离单位。
选项列表:[‘米’、‘公里’、‘英尺’、‘码’、‘英里’]
表达式可以是表示组的列表。组中的第一个运算符指示如何将组表达式添加到前一个表达式。仅当您需要从同一图层创建两个或多个不同的要素集时,才需要对表达式进行分组。考虑分组的一种方法是,如果不进行分组,则必须多次执行
find_existing_locations
并合并结果。output_name
可选字符串或
FeatureLayer
。现有要素图层将导致新图层附加到要素服务。如果上下文中的 overwrite 为 True,则新层将覆盖现有层。如果未指示output_name,则创建新的FeatureCollection
。context
可选字典。处理范围和输出空间参考等附加设置。对于find_existing_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
可选,如果为 True,将返回未来对象,并且进程不会等待任务完成。默认为False,表示等待结果。
例子:
#USAGE EXAMPLE: To find busy (where SEGMENT_TY is 1 and where ARTERIAL_C is 1) streets from the existing seattle streets layer. arterial_streets = find_existing_locations(input_layers=[bike_route_streets], expressions=[{"operator":"","layer":0,"where":"SEGMENT_TY = 1"}, {"operator":"and","layer":0,"where":"ARTERIAL_C = 1"}], output_name='ArterialStreets')
相关用法
- Python ArcGIS find_existing_locations用法及代码示例
- Python ArcGIS find_centroids用法及代码示例
- Python ArcGIS find_point_clusters用法及代码示例
- Python ArcGIS find_nearest用法及代码示例
- Python ArcGIS find_hot_spots用法及代码示例
- Python ArcGIS find_outliers用法及代码示例
- Python ArcGIS find_argument_statistics用法及代码示例
- Python ArcGIS find_similar_locations用法及代码示例
- Python ArcGIS forest用法及代码示例
- Python ArcGIS from_geo_coordinate_string用法及代码示例
- Python ArcGIS flow_direction用法及代码示例
- Python ArcGIS float_divide用法及代码示例
- Python ArcGIS floor_divide用法及代码示例
- 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用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.features.analysis.find_existing_locations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。