【发布时间】:2021-03-26 13:28:13
【问题描述】:
我正在尝试从 ArcGIS 下载飓风数据。我可以做两件事。
-
我可以访问他们的网页界面: https://services9.arcgis.com/RHVPKKiFTONKtxq3/ArcGIS/rest/services/Active_Hurricanes_v1/FeatureServer/1/query 设置一些值('Where' 字段我设置为 1=1,'Out Fields' 我设置为 *) 然后滚动到底部并单击“查询(GET)”按钮。屏幕上会出现一些值。 一切都很好,但没有形状数据。
-
我可以使用 Python(这是我的真正目标)。 我有一个脚本可以做到这一点。抱歉,代码看起来很讨厌……stackoverflow 中的 CODE 图标目前似乎不起作用。
导入 urllib.request、urllib.error、urllib.parse 导入json
url_json= 'https://services9.arcgis.com/RHVPKKiFTONKtxq3/ArcGIS/rest/services/Active_Hurricanes_v1/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=无&距离= 0.0&单位= esriSRUnit_Meter&returnGeodetic =假外场= *&returnGeometry =假featureEncoding = esriDefault&multipatchOption = xyFootprint&maxAllowableOffset =&geometryPrecision =&outSR =&datumTransformation =&applyVCSProjection =假returnIdsOnly =假returnUniqueIdsOnly =假returnCountOnly =假returnExtentOnly =假returnQueryGeometry =假returnDistinctValues =假cacheHint =假orderByFields =&groupByFieldsForStatistics =&outStatistics =&具有=&resultOffset = &resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pjson&token='
响应 = urllib.request.urlopen(url_json)
webContent = response.read() # JSON 结果的字节串
jsonContent = json.loads(webContent) # 从字节串创建一个 JSON 对象
对于 jsonContent['features'] 中的对象:
rec = {} # create an empty dictionary for each feature for k in object['attributes'].keys(): rec[k] = object['attributes'][k]
要获取我在 python 程序中使用的 url,我只需按下 (1) 上的按钮,然后使用 url 栏中的信息。唯一的区别是我选择了 json 而不是 html 作为输出。问题:我不知道如何让它返回形状信息的 blob。他的 API 允许吗?如果是这样,我应该在查询窗口和 url 中做什么来获取它?
【问题讨论】: