You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中优化反向地理编码:仅获取子区域加速8万油井处理

解决方案

针对8万条油井数据的反向地理编码效率问题,核心优化方向是减少不必要的数据传输、提升批量请求效率、避免重复请求,具体操作如下:

1. 指定仅获取Subregion字段

ArcGIS反向地理编码API支持通过outFields参数筛选返回字段,我们可以只请求Subregion(对应州信息),大幅压缩每次请求的数据量,加快处理速度。在reverse_geocode中通过api_options传递该参数即可。

2. 优化批量请求参数

ArcGIS批量反向地理编码单次最多支持100个坐标请求,将batch_limit设置为100,能最大化每次请求的处理量,减少总请求次数。

3. 去重重复坐标

如果数据中存在大量重复的经纬度,先对坐标去重后再发起请求,获取结果后合并回原数据,可显著降低请求总量。

修改后的代码

library(readxl)
info_pozos <- read_excel("C:/Users/Kevin/Downloads/info_pozos.xlsx")

library(dplyr, warn.conflicts = FALSE)
library(tidygeocoder)

# 对坐标去重,避免重复请求相同经纬度
unique_coords <- info_pozos %>%
  distinct(coordenaday, coordenadax)

# 带参数优化的反向地理编码请求
reverse_results <- unique_coords %>%
  reverse_geocode(
    lat = coordenaday, 
    long = coordenadax, 
    method = 'arcgis',
    # 指定仅返回Subregion字段
    api_options = list(outFields = "Subregion"),
    # 设置批量请求上限为ArcGIS支持的最大值
    batch_limit = 100,
    # 配合outFields进一步精简返回数据
    full_results = FALSE
  )

# 将结果合并回原始数据集
final_data <- info_pozos %>%
  left_join(reverse_results, by = c("coordenaday", "coordenadax"))

View(final_data)

额外优化建议

  • 确保网络连接稳定,避免因请求重试增加耗时;
  • 若后续有同类需求,可将已请求过的坐标-州信息存储到本地文件(如CSV),后续直接读取缓存数据,无需重复发起API请求。

内容的提问来源于stack exchange,提问作者Kevin Corfield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:05:00