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

如何基于指定经纬度范围生成CSV列构建ArcGIS可用的加拿大网格?

加拿大覆盖网格CSV生成方案

原有代码问题

你当前的代码通过zip配对经纬度生成的是一一对应的斜向点集,并非覆盖整个经纬度范围的网格点,同时变量名long和Python内置函数重名,也可能引发隐性问题,这是你后续写入CSV时报错的核心诱因之一。

实现代码

方案1:基于csv标准库实现

import csv
import numpy as np

# 可调整参数:步长越小网格越密
step = 0.01
# 生成经纬度数组
lat_arr = np.arange(42, 84, step)
lng_arr = np.arange(-142, -52, step)
# 生成全网格笛卡尔积
lat_grid, lng_grid = np.meshgrid(lat_arr, lng_arr)
# 展平为一维数组后配对
lat_lng = list(zip(lat_grid.flatten(), lng_grid.flatten()))

# 写入CSV
with open('canada_grid.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(['lat', 'lng'])
    # 批量写入所有点
    writer.writerows(lat_lng)

方案2:基于pandas实现(代码更简洁,性能更高)

import pandas as pd
import numpy as np

# 可调整参数
step = 0.01
lat_arr = np.arange(42, 84, step)
lng_arr = np.arange(-142, -52, step)
lat_grid, lng_grid = np.meshgrid(lat_arr, lng_arr)

# 直接构造DataFrame导出
df = pd.DataFrame({
    'lat': lat_grid.flatten(),
    'lng': lng_grid.flatten()
})
df.to_csv('canada_grid.csv', index=False, encoding='utf-8')

参数调整说明

  • 调整step变量即可修改网格方格大小:比如设置为0.1代表生成0.1度间隔的网格,设置为1代表生成1度间隔的网格,数值越大网格越稀疏,生成速度越快
  • 如需调整覆盖范围,直接修改np.arange的起止数值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 04:15:00