当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ArcGIS FeatureLayer.query_date_bins用法及代码示例


本文简要介绍 python 语言中 arcgis.features.FeatureLayer.query_date_bins 的用法。

用法:

query_date_bins(bin_field, bin_specs, out_statistics, time_filter=None, geometry_filter=None, bin_order=None, where=None, return_centroid=False, in_sr=None, out_sr=None, spatial_rel=None, quantization_params=None, result_offset=None, result_record_count=None, return_exceeded_limit_features=False)

返回:

包含结果特征和字段的字典。

query_date_bins 操作在 FeatureLayer 上执行。此操作返回基于日期字段划分为 bin 的特征直方图。响应可以包括每个箱的统计聚合,例如计数或总和,还可以包括点层的聚合几何形状(换句话说,质心)。

这些参数定义了容器、返回的聚合信息以及包含的函数。 bin 是使用 bin 参数定义的。 out_statisticsreturn_centroid 参数定义每个 bin 将提供的信息。可以通过提供 time 范围、where 条件和空间过滤器来指定包含的函数,类似于查询操作。

bin_specs 参数的内容为定义 bin 边界提供了灵活性。 bin_specs 参数的 unit 属性定义每个 bin 的时间宽度,例如一年、季度、月份、天或小时。固定 bin 可以对这些时间宽度使用多个单位。 result_offset 属性定义该时间单位内的偏移量。例如,如果您的 bin 单位为 day ,并且您希望 bin 边界从中午到第二天的中午,则偏移量将为 12 小时。

可以使用 time_filterwheregeometry_filter 参数来操作函数。默认情况下,结果将扩展以适合该函数的最早和最晚时间点。 time_filter 参数根据 binField 中使用的字段定义特征的固定起点和终点。 wheregeometry_filter 参数允许对数据添加额外的过滤器。

仅使用时空数据存储的要素服务支持此操作。此外,服务属性 supportsQueryDateBins 必须设置为 true。

要在 ArcGIS Enterprise 中的托管要素服务上使用分页和聚合查询,图层上的 supportsPaginationOnAggregatedQueries 属性必须为 true。使用时空数据存储的托管要素服务当前不支持聚合查询的分页。

Parameter

Description

bin_field

必需的字符串。用于确定每个要素属于哪个 bin 的日期字段。

bin_specs

必需的字典。说明 bin 特征的字典,例如 bin 的大小及其起始位置。每个 bin 的大小由 numberunit 属性表示的时间单位数确定。

bin 的起始位置是指定单位中的最早时刻。例如,每年从 1 月 1 日午夜开始。 bin 参数内的偏移量可以提供 bin 起始位置的偏移量。它可以包含正整数或负整数值。

箱子可以采用两种形式:日历箱子或固定箱子。日历箱可以识别 calendar-specific 调整,例如夏令时和闰秒。相比之下,固定 bin 始终是特定的测量单位(例如,一分钟 60 秒,一天 24 小时),无论 bin 的日期和时间从何处开始。因此,某些 calendar-specific 单位仅支持作为日历箱。

# Calendar bin

>>> bin_specs= {"calendarBin":
                  {"unit": "year",
                    "timezone": "US/Arizona",
                    "offset": {
                        "number": 5,
                        "unit": "hour"}
                  }
               }

# Fixed bin

>>> bin_specs= {"fixedBin":
                 {
                  "number": 12,
                  "unit": "hour",
                  "offset": {
                    "number": 5,
                    "unit": "hour"}
                 }
               }

out_statistics

所需的字典列表。要计算的一个或多个基于字段的统计数据的定义:

{
 "statisticType": "<count | sum | min | max | avg | stddev | var>",
 "onStatisticField": "Field1",
 "outStatisticFieldName": "Out_Field_Name1"
}

time_filter

可选列表。格式为 [<startTime>, <endTime>],使用 datetime.date、datetime.datetime 或时间戳(以毫秒为单位)。

geometry_filter

filters 中可选。允许根据与另一个几何体的空间关系来过滤信息。

bin_order

可选字符串。 “ASC” 或“DESC”。确定结果是按升序还是降序返回。默认为升序。

where

可选字符串。用于查询过滤器的 WHERE 子句。大多数数据源都支持层中字段的 SQL '92 WHERE 子句语法。

return_centroid

可选布尔值。返回与箱中所有要素关联的几何质心。如果为 true,则结果包括几何质心。默认为 false。该参数仅支持点数据。

in_sr

可选整数。输入几何体的空间参考的 WKID。

out_sr

可选整数。返回几何的空间参考的 WKID。

spatial_rel

可选字符串。执行查询时应用于输入几何的空间关系。支持的空间关系包括相交、包含、包络相交、内部等。默认空间关系是相交 (esriSpatialRelIntersects)。其他选项包括 esriSpatialRelContainsesriSpatialRelCrossesesriSpatialRelEnvelopeIntersectsesriSpatialRelIndexIntersectsesriSpatialRelOverlapsesriSpatialRelTouchesesriSpatialRelWithin

quantization_params

可选字典。用于将几何体投影到虚拟网格上,可能代表屏幕上的像素。

# upperLeft origin position

{"mode": "view",
 "originPosition": "upperLeft",
 "tolerance": 1.0583354500042335,
 "extent": {
     "type": "extent",
     "xmin": -18341377.47954369,
     "ymin": 2979920.6113554947,
     "xmax": -7546517.393554582,
     "ymax": 11203512.89298139,
     "spatialReference": {
         "wkid": 102100,
         "latestWkid": 3857}
     }
 }

# lowerLeft origin position

{"mode": "view",
 "originPosition": "lowerLeft",
 "tolerance": 1.0583354500042335,
 "extent": {
    "type": "extent",
    "xmin": -18341377.47954369,
    "ymin": 2979920.6113554947,
    "xmax": -7546517.393554582,
    "ymax": 11203512.89298139,
    "spatialReference": {
        "wkid": 102100,
        "latestWkid": 3857}
    }
}

有关此参数格式的详细信息,请参阅Quantization parameters JSON properties

注意:

仅当图层的 supportsCoordinateQuantization 属性为 true 时,此参数才适用。

result_offset

可选的国际。该参数通过跳过指定数量的记录并从下一条记录开始获取查询结果。默认值为 0。

注意:

仅当图层的 supportsPagination 属性为 true 时,此参数才适用。

result_record_count

可选的国际。此参数获取最多指定值的查询结果。当指定了 result_offset 但未指定此参数时,Map服务默认使用图层的 maxRecordCount 属性。此参数的最大值是 maxRecordCount 属性的值。为此参数输入的最小值不能低于 1。

注意:

仅当图层的 supportsPagination 属性为 true 时,此参数才适用。

return_exceeded_limit_features

可选布尔值。当设置为 True 时,即使结果包含 "exceededTransferLimit": true 也会返回特征。这允许客户端找到不再超出传输限制的解决方案,而无需进行多次调用。默认值为False

例子:

# Usage Example

>>> flyr_item = gis.content.search("*", "Feature Layer")[0]
>>> flyr = flyr_item.layers[0]

>>> qy_result = flyr.query_date_bins(bin_field="boundary",
                                     bin_specs={"calendarBin":
                                                  {"unit":"day",
                                                   "timezone": "America/Los_Angeles",
                                                   "offset": {"number": 8,
                                                              "unit": "hour"}
                                                  }
                                                },
                                     out_statistics=[{"statisticType": "count",
                                                      "onStatisticField": "objectid",
                                                      "outStatisticFieldName": "item_sold_count"},
                                                     {"statisticType": "avg",
                                                     "onStatisticField": "price",
                                                     "outStatisticFieldName": "avg_daily_revenue "}],
                                     time=[1609516800000, 1612195199999])
>>> qy_result
   {
    "features": [
      {
        "attributes": {
          "boundary": 1609516800000,
          "avg_daily_revenue": 300.40,
          "item_sold_count": 79
        }
      },
      {
        "attributes": {
          "boundary": 1612108800000,
          "avg_daily_revenue": null,
          "item_sold_count": 0
        }
      }
    ],
    "fields": [
      {
        "name": "boundary",
        "type": "esriFieldTypeDate"
      },
      {
        "name": "item_sold_count",
        "alias": "item_sold_count",
        "type": "esriFieldTypeInteger"
      },
      {
        "name": "avg_daily_revenue",
        "alias": "avg_daily_revenue",
        "type": "esriFieldTypeDouble"
      }
    ],
    "exceededTransferLimit": false
  }

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.features.FeatureLayer.query_date_bins。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。