如何计算每个纬度/经度网格正方形的大小(以平方米为单位)

2024-02-03

我对 gridsquare 分辨率下以 m2 为单位的数据进行了估计。我需要计算每个纬度/经度网格单元中的 m2 数量?

两极附近的细胞尺寸比赤道附近的细胞尺寸小得多,因此这一点很重要。

我想要一个 netcdf 文件或每个网格方块中平方米数的数组。


如果有人想要每个经纬度网格单元中平方米数的 netcdf 。 这可能不是最干净的解决方案,但会使用 xarray 在每个网格中创建 m2 的 netcdf (earth_m2.nc)。

The gridsize()函数改编自另一个堆栈溢出问题。 然后,我们可以创建一个虚拟数组,并使用每个位置的经度距离创建一个 m2s 的地球场。

"""
This will create a global grid of the approximate size of each grid square.
"""
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt

def gridsize(lat1):
   #https://en.wikipedia.org/wiki/Haversine_formula
   #https://stackoverflow.com/questions/639695/how-to-convert-latitude-or-longitude-to-meters/11172685#11172685
   lon1=200
   import math
   lat2=lat1
   lon2=lon1+1

   R = 6378.137 # // Radius of earth in km
   dLat = lat2 * np.pi / 180 - lat1 * np.pi / 180
   dLon = lon2 * np.pi / 180 - lon1 * np.pi / 180
   a = np.sin(dLat/2) * np.sin(dLat/2) + np.cos(lat1 * np.pi / 180) * np.cos(lat2 * np.pi / 180) * np.sin(dLon/2) * np.sin(dLon/2)
   c = 2 * np.arctan2(np.sqrt(a), np.sqrt(1-a))
   d = R * c
   return d * 1000 #; // meters


boxlo,boxla=np.array(np.meshgrid(np.arange(-179.5,179.5,1),np.arange(-89.5,89.5,1)))
sizes=np.ones(boxlo.shape)
grid=gridsize(boxla)

grid_nc=xr.DataArray(grid,coords={'lat':boxla[:,1],'lon':boxlo[1,:]},dims=['lat','lon'])
lat_size=110567 #in m
grid_nc['m2']=grid_nc*lat_size
grid_nc=grid_nc['m2']
grid_nc.to_netcdf('earth_m2.nc')

plt.pcolormesh(boxlo[1,:],boxla[:,1],grid_nc)
plt.colorbar()
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算每个纬度/经度网格正方形的大小(以平方米为单位) 的相关文章

  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 如何在 C 中将 uint 转换为 int,同时将结果范围的损失最小化

    我想要两个无界整数之间的差 每个整数由一个表示uint32 tvalue 是对 2 32 取模的无界整数 例如 TCP 序列号 请注意 模 2 32表示形式可以环绕 0 这与更受限制的问题 不允许环绕 0 https stackoverfl
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • JavaScript - 测试整数

    我有一个文本字段 允许用户输入他们的年龄 我正在尝试使用 JavaScript 对此字段进行一些客户端验证 我已经有了服务器端验证 但是 我似乎无法验证用户是否输入了实际的整数 我目前正在尝试以下代码 function IsValidAge
  • 编辑单元格时刷新行

    我对这个 JTable 有问题 我像这样编辑一个单元格 然后我按 Enter 键提交更改 在这里 我希望表 GUI 能够刷新新值 但它们没有显示 只有当我像这样更改选择时才会显示 fireTableCellUpdated inRow inC
  • 用于运行任务名称中包含连字符的 Ant 任务的命令行

    任务名称以连字符 开头
  • 如何在同一个按钮上使用反应路由器和反应滚动?

    我想在同一个导航链接上使用反应路由器和反应滚动 如果我在主页上 我希望按钮具有反应滚动行为 如果我在不同的页面上 按钮需要返回主页 然后滚动到首选组件 反应滚动行为 这是我的想法 但它不能正常工作 import Link from reac
  • 使用 kubernetes nginx-ingress 反向代理具有 SNI 支持的站点

    我正在使用 kubernetes nginx ingress 设置反向代理 但我不知道如何将 nginx 参数添加到配置中 具体来说 proxy ssl 服务器名称 http nginx org en docs http ngx http
  • 如何在其他代码行同时执行的同时播放声音?

    我希望我的代码能够执行此操作 但要在后台播放音乐 import time while True print ligma time sleep 1 5 我试过这个 import time import winsound while True
  • 为什么我的数组加载后会清空?

    我一定错过了一些基本的东西 但我似乎无法保持我的数组加载 它加载成功 但当它出现在另一个函数中时 它变成空的 我的目标是从位置数组中随机选择一个城市 地图视图加载了我的所有注释 但是当我在注释出现后调用 pickRandomNumber 时
  • 无法连接到 Poloniex

    我正在尝试连接到 Poloniex 为了进行连接 我使用 WynthShop 和以下代码 public class Program public static void Main string args var channelFactory
  • Oracle Database12c ORA 01918 和连接错误

    我已经安装了 Oracle 12c 但在创建和使用第一个数据库时遇到问题 我运行 SQL Developer 并使用 hr 用户 但它一直告诉我该帐户已锁定 我搜索了 stackoverflow 答案和官方文档 并尝试使用以下方法解锁它 A
  • WPF ShowDialog 在第二次调用时立即返回 null

    我认为这是 WPF 框架中的一个错误 没有深入了解我的程序以及为什么我要做我正在做的事情 我编写了一个简单的测试应用程序来证明我的理论 这个问题能否得到证实 在将应用程序放入其运行循环之前执行一系列对话框有哪些可能的解决方法 using S
  • 如何在 Modelica 中构建液体平衡连接器?

    帖子状态 200313 得到了代码 DEMO v42 的答案 我接受了赏金 200310 我评论了昨天建议的两篇关键论文 还是不明白如何更新DEMO v41 200309 我想强调的是 关键问题是如何在代码DEMO v41 如果可能的话 中
  • CodeIgniter框架中的库和模型有什么区别?

    我是 CI 新手 之前我曾在 RoR 和 Symfony 中广泛工作过 我无法理解为什么 CI 提供了库和模型 我检查的大多数 CI 代码通常使用库作为模型的包装器 模型专门用于与数据库对话 有人可以阐明这一点吗 对此可能还有其他的思想流派
  • Django:精确查找的 QuerySet 值必须使用切片限制为一个结果

    我正在开发一个项目 管理员可以将团队分配给经理 但它不起作用 我不知道它将如何工作 因为它会引发一个错误 指出 精确查找的 QuerySet 值必须使用切片限制为一个结果 这是我的 model py class manager models
  • 如何在WPF中制作UIElement的屏幕截图

    我在创建 scatterview 的屏幕截图时遇到问题 我的屏幕截图总是包含黑框 这是我的 XAML 代码
  • 在 Azure Active Directory 上启用 CORS

    我尝试在 Angular 6 应用程序中使用以下方法以编程方式从 Azure Active Directory 获取访问令牌 let body1 new FormData body1 append resource environment
  • NSButton 的弹出菜单实现

    我该怎么办 我在想 NSMenu popUpContextMenu menu withEvent event forView NSButton sender Yup 按钮动作调用 NSMenu popUpContextMenu menu w
  • Spring Boot 应用程序中的 BIRT

    我需要在现有的 Spring Boot Web 应用程序中创建报告功能 函数 建议使用 BIRT 我可以将其与 Spring Boot Web 应用程序集成 我找到了下面的文章 并且能够在 Spring Boot 启动项目中运行报告 使用h
  • 类型“String”不是 get 方法 flutter 中类型“Null”的子类型

    我收到此错误 在 get 方法 flutter 中 类型 String 不是类型 Null 的子类型 这是我使用的 get api 函数 Future
  • 如果存在特定外键,则使用信息注释查询集

    假设我有两个这样的模型 from django contrib auth import User class Post models Model text models TextField class Like models Model p
  • 如何计算每个纬度/经度网格正方形的大小(以平方米为单位)

    我对 gridsquare 分辨率下以 m2 为单位的数据进行了估计 我需要计算每个纬度 经度网格单元中的 m2 数量 两极附近的细胞尺寸比赤道附近的细胞尺寸小得多 因此这一点很重要 我想要一个 netcdf 文件或每个网格方块中平方米数的