python怎么由边界生成网格_如何使用python生成常规地理网格?

初步考虑

它对如何定义特定区域有一点不同。如果它只是一个矩形区域(注:投影中的矩形在地球表面不一定是矩形!),只需使用所需的步长在两个坐标维中从最小值迭代到最大值。如果手头有任意多边形形状,则需要测试生成的点中哪些与该多边形相交,并仅返回该条件适用的坐标对。

计算规则网格

规则网格不等于投影上的规则网格。你说的是经纬度对,这是一个极坐标系,以度为单位,以地球表面形状的近似值来测量。在纬度/经度(EPSG:4326)中,距离不是以米/公里/英里为单位测量的,而是以度为单位。

此外,我假设你想计算一个网格,它的“水平”台阶平行于赤道(即纬度)。对于其他网格(例如旋转的矩形网格、与经度平行的垂直网格等),您需要花费更多的精力来变换形状。

问问你自己:你想创建一个以度或米为单位的规则间距网格吗?

以度数表示的网格

如果你想用度数表示,你可以简单地迭代:stepsize = 0.001

for x in range(lonmin, lonmax, stepsize):

for y in range(latmin, latmax, stepsize):

yield (x, y)

但是:一定要知道,在地球表面,以米为单位的步进度的长度是不一样的。例如,接近赤道的0.001度纬度在地表上的距离(米)与接近两极的距离不同。

以米为单位的网格

如果要以米为单位,则需要将输入区域的纬度/经度边界(地图上的特定区域)投影到支持以米为单位的距离的坐标系中。您可以使用Haversine formula作为粗略的近似值来计算lat/lon对之间的距离,但这不是您可以使用的最

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值