在Python底图中绘制gebco数据

2023-12-02

我已经下载了一些gebco 测深数据作为netCDF 文件。我想用 python-basemap 绘制它。我努力了,

import netCDF4
from mpl_toolkits.basemap import Basemap


# Load data
dataset = netCDF4.Dataset('/home/david/Desktop/GEBCO/gebco_08_-30_45_5_65.nc')

# Extract variables
x = dataset.variables['x_range']
y = dataset.variables['y_range']
spacing = dataset.variables['spacing']

# Data limits
nx = (x[-1]-x[0])/spacing[0]   # num pts in x-dir
ny = (y[-1]-y[0])/spacing[1]   # num pts in y-dir

# Reshape data
zz = dataset.variables['z']
Z = zz[:].reshape(ny, nx)



# setup basemap.
m = Basemap(llcrnrlon=-30,llcrnrlat=45.0,urcrnrlon=5.0,urcrnrlat=65.0,
            resolution='i',projection='stere',lon_0=-15.0,lat_0=55.0)


# Set up grid
lons, lats = m.makegrid(nx, ny)
x, y = m(lons, lats)

m.contourf(x, y, flipud(Z))
m.fillcontinents(color='grey')
m.drawparallels(np.arange(10,70,10), labels=[1,0,0,0])
m.drawmeridians(np.arange(-80, 5, 10), labels=[0,0,0,1])

这给出了下图,显然不正确。问题源于区域的定义方式。对于底图区域,由左下角纬度、经度和右上角纬度、经度定义。但gebco 数据采用沿中心线定义的最大和最小经度/纬度。 任何人都有gebco数据的经验或看到解决方案吗?

thanks D map


因此,仅供记录,这是使用上面评论的有效答案:

import netCDF4
from mpl_toolkits.basemap import Basemap

# Load data
dataset = netCDF4.Dataset('/usgs/data1/rsignell/bathy/gebco_08_-30_-45_5_65.nc')

# Extract variables
x = dataset.variables['x_range']
y = dataset.variables['y_range']
spacing = dataset.variables['spacing']

# Compute Lat/Lon
nx = (x[-1]-x[0])/spacing[0]   # num pts in x-dir
ny = (y[-1]-y[0])/spacing[1]   # num pts in y-dir

lon = np.linspace(x[0],x[-1],nx)
lat = np.linspace(y[0],y[-1],ny)

# Reshape data
zz = dataset.variables['z']
Z = zz[:].reshape(ny, nx)

# setup basemap.
m = Basemap(llcrnrlon=-30,llcrnrlat=45.0,urcrnrlon=5.0,urcrnrlat=65.0,
            resolution='i',projection='stere',lon_0=-15.0,lat_0=55.0)

x,y = m(*np.meshgrid(lon,lat))

m.contourf(x, y, flipud(Z));
m.fillcontinents(color='grey');
m.drawparallels(np.arange(10,70,10), labels=[1,0,0,0]);
m.drawmeridians(np.arange(-80, 5, 10), labels=[0,0,0,1]);

which produces this plot.enter image description here

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

在Python底图中绘制gebco数据 的相关文章

  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 我应该使用 CSS :disabled 伪类还是 [disabled] 属性选择器还是这是一个意见问题?

    我正在尝试设置禁用输入的样式 我可以用 myInput disabled or myInput disabled 属性选择器是现代 CSS3 方式以及未来的发展方向吗 我曾经使用伪类 但我找不到任何关于它们是否是旧方式并且不受支持或者它们是
  • 如何在Python Selenium中逐步向下滚动

    大家好 我是 Selenium 和 Python 的新手 我只是在抓取网站帕加尔盖网站 我知道如何向下滚动到页面底部 但我需要的是逐步向下滚动 以便 Selenium 单击所有 阅读更多 按钮 但我不知道如何像这样逐步向下滚动 所以我像下面
  • 使用 geom_tile 清理地图

    感谢本网站上一些用户的帮助 我能够使用 geom point 获得一些数据的漂亮地图 获得州界的边界 但是 现在我正在尝试清理它 因为我有更多年的时间来绘制 并希望确保情节正常工作并提供良好的信息 经过进一步的研究 似乎 geom tile
  • 检查数据库中表是否存在时出现问题

    基本上我有我的 MySQL dbname test 和我的表名称 page 我想使用 php PDO 创建一个查询来检查表 page 是否存在于我的数据库 test 中 我已经尝试过这两件事 但它确实有效 第一个例子总是告诉我它不存在 即使
  • 在 JSP 中使用 struts 2 比较日期

    我想使用比较两个日期Struts2 One is returned from the backend test currentDate 2012 11 15 The other one I just set 2014 10 19 我如何比较
  • move_uploaded_file(...): 无法打开流: 没有这样的文件或目录

    我尝试使用 PHP 和 MySQL 以及临时文件夹将图像插入数据库中 我使用 laravel 这是我的控制器 if isset FILES img masc img FILES img masc name ruta FILES img ma
  • 使用 Python 的 matplotlib 3D API 绘制轮廓的问题

    我正在尝试做类似的事情this文档中的 3D 示例 但使用点云而不是光滑表面 该示例将 2D 轮廓投影到三个坐标平面中的每一个上 这表明我能够在 xy 平面上做到这一点 当我尝试在其他两个平面上做同样的事情时 我得到的要么是一个奇怪的轮廓塌
  • JWT 身份验证,Authorize 属性中定义的角色将被忽略

    在努力实施的同时基于角色的身份验证 using JWT作为默认身份验证方案 我遇到了一种情况 其中定义的角色Authorize属性被忽略 允许任何请求 使用有效的令牌 通过 即使不在这些角色中 有趣的是 具有相同定义的自定义要求的其他策略A
  • 给定并行列表,如何对一个列表进行排序,同时以相同的方式排列(重新排列)另一个列表?

    假设我有 list1 3 2 4 1 1 list2 three two four one one2 Calling list1 sort 将对它进行排序 结果是 1 1 2 3 4 然而 我能得到list2与此同步重新排列 以获得这样的结
  • 如何使用 Gremlin 提高最短路径的性能?

    我正在使用 JanusGraph 和 Gremlin 以及this数据集包含 2 6k 个节点和 6 6k 个边 两侧各 3 3k 个边 我已经运行查询 10 分钟但没有找到最短路径 使用 Gephi 最短路径几乎是瞬时的 这是我的查询 g
  • Pyspark:将 tar.gz 文件加载到数据框中并按文件名过滤

    我有一个包含多个文件的 tar gz 文件 层次结构如下所示 我的目的是读取tar gz文件 过滤掉其中的内容b tsv因为它是静态元数据 其中所有其他文件都是实际记录 gzfile tar gz a tsv b tsv thousand
  • ConcurrentModificationException 和 HashSet.iterator()

    我有一个像这样的for循环 for int neighbour neighbours 我可以修改的地方neighbours循环内 发现这就是原因ConcurrentModificationException 并读自https stackov
  • 如何自定义控制器以在 Devise 中注册?

    当新用户通过 Devise 注册时 我需要添加一些简单的方法和操作 我想应用一种通知方法 该方法会向我发送电子邮件 我想使用acts as network 传递会话值并将新寄存器连接到邀请他们的人 我如何定制 我查看了文档 但我不完全清楚我
  • Java中的自动类型转换?

    Java 有没有办法自动进行隐式类型转换 例如 假设我有两种类型 FooSet 和 BarSet 它们都是集合的表示 类型之间的转换很容易 因此我编写了两个实用方法 Given a BarSet returns a FooSet publi
  • 使用Python请求库发送jquery AJAX GET请求

    我有一个需要抓取的网站 它使用 jquery AJAX 函数从服务器获取信息 我已经研究代码一段时间了 我成功地使用以下命令从服务器获得了响应 data part number 1234 r ajax type GET url ajaxur
  • 查找匹配“a”的模式,忽略位于“b”和“c”内的“a”

    需要一个复合表达式 from such that from is not within parenthesis 忽略括号内的 这里a from b and c 我可以写的最接近 但无效 的模式是 string pat from from f
  • 从月份计算季度

    我有一个数据框 其中包含按月排列的多个列 c1 c2 yyyy 01 yyyy 02 yyyy 03 yyyy 04 yyyy 05 yyyy 06 a A 1 1 3 2 2 3 b B 2 3 4 4 2 1 大约有15年的数据 我需要
  • Python timeit 不适用于 list.remove 操作

    我试图通过 timeit 模块检查 python 列表中删除操作的性能 但它抛出了 ValueError In 4 a 1 2 3 In 5 timeit a remove 2 ValueError Traceback most recen
  • Java 嵌入式数据库比较 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我打算开发一个小型 Java 应用程序来管理我的财务 我相信我需要使用嵌入式数据库 但我对此问题没有经验 我试着看看一些可用的产品 但我无法决定哪一个更适合我 H2 HSQLDB D
  • 在Python底图中绘制gebco数据

    我已经下载了一些gebco 测深数据作为netCDF 文件 我想用 python basemap 绘制它 我努力了 import netCDF4 from mpl toolkits basemap import Basemap Load d