标签: netcdf

如何调试“程序接收信号SIGSEGV:分段错误”错误

我正在运行 Fortran exe,但收到错误:

 set_nml_output Echo NML values to log file only
 Trying to open namelist log dart_log.nml
 PE 0: initialize_mpi_utilities:  Running with            8  MPI processes.

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用 gdb 来查找一些内容,它报告

[New LWP 9883]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Failed to read a valid object file image from memory.
Core was generated by `./filter'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00002af8e021390c in …
Run Code Online (Sandbox Code Playgroud)

linux fortran gfortran netcdf

3
推荐指数
1
解决办法
4907
查看次数

我应该如何使用 CDO Selyear?我得到的输出文件大四倍

CDO 似乎对我来说工作得很好,直到我遇到了这个。我有一个从 2101 年到 2228 年的每日数据的 netcdf,并且我想获取一个仅包含从 2101 年到 2227 年的年份的文件,所以我运行:

cdo selyear,2101/2227 in.nc out.nc
Run Code Online (Sandbox Code Playgroud)

但输出文件的内存大小是输入文件的四倍多!它似乎具有正确的时间步数,并且初始日期和结束日期都是正确的。另外,纬度和经度似乎与输入相同,所以我想知道为什么文件大小如此。

netcdf netcdf4 cdo-climate

3
推荐指数
1
解决办法
5838
查看次数

使用xarray创建netCDF文件,定义变量数据类型

我使用 xarray 创建了一个 netCDF 文件,用于将地形高度信息、表面类型信息等输入到数值天气预报模型中。我设法创建了一个文件,但是,该模型要求不同的变量是不同的数据类型。

我的数据集 bolund_static 如下所示:

<xarray.Dataset>
Dimensions:          (x: 800, y: 200)

Coordinates:
  * y                (y) float64 1.0 3.0 5.0 7.0 9.0 ... 393.0 395.0 397.0 399.0
  * x                (x) float64 1.0 3.0 5.0 ... 1.595e+03 1.597e+03 1.599e+03
Data variables:
    zt               (y, x) float64 1.0 1.0 1.0 1.0 1.0 ... 1.0 1.0 1.0 1.0 1.0
    vegetation_type  (y, x) float64 -127.0 -127.0 -127.0 ... -127.0 -127.0
    water_type       (y, x) float64 3.0 3.0 3.0 3.0 3.0 ... 3.0 3.0 3.0 …
Run Code Online (Sandbox Code Playgroud)

netcdf python-xarray

3
推荐指数
1
解决办法
2153
查看次数

如何使用 NCO 编辑 netcdf 文件中的全局属性

我正在尝试编辑 netcdf 文件中的全局属性之一:

START_DATE = "2016-05-12_00:00:00"
Run Code Online (Sandbox Code Playgroud)

我想将日期字符串更改为另一个日期。你如何用 nco 包做到这一点?

我已经看到我可以使用

ncatted [-a ...] [-D dbg_lvl] [-h] [-l path] [-O] [-o out.nc] [-p path] [-R] [-r] in.nc [[out.nc]]
Run Code Online (Sandbox Code Playgroud)

我已阅读文档,但显示的示例有限。

这是我使用它的方式:

ncatted -O -h -a START_DATE,,m,c,"2016-06-12_00:00:00" wrfchemi_d01.nc wrfnew.nc 
Run Code Online (Sandbox Code Playgroud)

使用 ncdump 检查输出时,全局属性没有改变,如下所示:

// global attributes:
        :TITLE = " OUTPUT FROM *             PROGRAM:WRF-Chem V4.1.2 MODEL" ;
        :START_DATE = "2016-05-12_00:00:00" ;
        :WEST-EAST_GRID_DIMENSION = 70 ;
        :SOUTH-NORTH_GRID_DIMENSION = 70 ;
        :BOTTOM-TOP_GRID_DIMENSION = 51 ;
        :DX = 25000.f ;
        :DY = 25000.f ;
        :AERCU_OPT = 0 ; …
Run Code Online (Sandbox Code Playgroud)

netcdf nco

3
推荐指数
1
解决办法
1756
查看次数

使用 CDO 计算 ERA5 每日总降水量

本质上,这是这个问题的转帖:https ://confluence.ecmwf.int/pages/viewpage.action?pageId =149341027

我已经从 CDS 下载了 ERA5。对于从每个考虑年份的 1 月 1 日到 12 月 31 日的每个日历日,输入文件具有 24 小时步长(0、1、2、3、4、...、23)。

ECMWF 在此声明https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation必须通过累加 1979 年 1 月 1 日的降水来计算每日总降水量1 月 1 日的第 1、2、...、23 步和 1 月 2 日的第 0 步。这意味着 1979 年 1 月 1 日的第 0 步不包括在当天的总降水量计算中。为了计算 1979 年 1 月 2 日的总降水量,我们还使用当天的步骤 1、2、3、...、23 加上 1 月 3 日的步骤 0,依此类推。

在 python 中似乎有一个选项可以这样做:

import xarray as xr                                                    # import xarray library
ds_nc = xr.open_dataset('name_of_your_file.nc')                        # read the file
daily_precipitation = …
Run Code Online (Sandbox Code Playgroud)

python weather netcdf cdo-climate era5

3
推荐指数
1
解决办法
2337
查看次数

使用 cartopy 绘制来自 netcdf 的数据不是在 0 经度绘制数据

我开始用网格数据开始我的旅程,我一直在尝试从带有 cartopy 的 netcdf 文件中绘制一些温度数据。我遵循了一些例子,我不明白为什么我的情节在中间有一条白线。(我已经检查了数据,矩阵中充满了数字,没有 NaN)

import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
import xarray as xr
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatterimport glob


data = xr.open_dataset('aux1.nc')
lat = data.lat
lon = data.lon
time = data.time
Temp = data.air


#Calculo la temperatura media anual
Tanual = Temp.resample(time="y").mean()
#Promedio de todos los meses
Tprom = Temp.mean(dim="time").values


#Grafico
fig = plt.figure(figsize=(10, 4))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
ax.coastlines()
ax.set_global()
ct = ax.contourf(lon,lat,Tprom,transform=ccrs.PlateCarree(),cmap="bwr")
ax.gridlines()
cb = plt.colorbar(ct,orientation="vertical",extendrect='True')
cb.set_label("Temperatura …
Run Code Online (Sandbox Code Playgroud)

python netcdf cartopy python-xarray

3
推荐指数
1
解决办法
968
查看次数

使用气候数据运营商 (CDO) 的每日数据的月雨天总和

我有每日时间分辨率的气候数据,并希望按月和按年计算有降水(例如,大于 1 毫米/天)的天数。

我试过eca_pd,1and eca_rr1,但这些命令返回所有年份的雨天总数。

例如, cdo eca_pd,1 infile outfile

是否有命令返回每个月和/或年的雨天?

weather netcdf nco netcdf4 cdo-climate

3
推荐指数
2
解决办法
716
查看次数

使用 python 从 netcdf 绘制风向量

我目前正在实习大气/气候物理学。我有来自 ERA5(哥白尼)的 netcdf 数据,我已经在不同的地图、图形等中绘制了这些数据......我需要用 cartopy 或除底图以外的任何其他东西绘制风矢量,但我无法弄清楚。

我的脚本的这部分现在看起来像这样:

import xarray as xr
from netCDF4 import Dataset as NetCDFFile 
import matplotlib.pyplot as plt
import numpy as np

import cartopy
import cartopy.feature as cfeat
import cartopy.crs as ccrs

ncw = xr.open_dataset('D:\Stage_IGE_CNRS\ERA5.nc')
nc2 = ncw.sel(time = slice('2016-03-06T06:00:00', '2016-03-31T18:00:00'), level = 1000).mean('time')
    
u = nc2['u']
v = nc2['v']
lon = nc2['longitude']
lat = nc2['latitude']
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

托马斯 V。

vector matplotlib netcdf python-3.x cartopy

3
推荐指数
1
解决办法
1479
查看次数

Sentinel3 OLCI (chl) Python 上 netcdf 文件的平均值

我在尝试获得 Sentinel 3 图像的月平均值时遇到了一些麻烦……一切,真的。Python,Matlab,我们两个人都陷入了这个问题。

主要原因是这些图像的信息不是在一个单独的 netcdf 文件中,而是整齐地与坐标和产品放在一起。相反,它们都位于一天文件夹内的单独文件中,作为 不同的 .nc 文件,每个文件包含有关一张卫星图像的不同信息。据我了解,SNAP 使用 xmlxs 文件来处理所有这些单独的 .nc 文件。

现在,我认为尝试合并和创建/编辑 .nc 文件以创建一个新的每日 .nc 文件是一个好主意,其中包括叶绿素、坐标以及时间。后来,我会合并这些新的,以便能够使用 xarray 计算每月平均值。至少这是我的想法,但我无法完成第一部分。这可能是一个明显的解决方案,但是这是我尝试使用 xarray 模块的方法

import os
import numpy as np
import xarray as xr
import netCDF4
from netCDF4 import Dataset
  
nc_folder = df_try.iloc[0] #folder where the image files are

#open dataset in xarray
nc_chl = xr.open_dataset(str(nc_folder['path']) + '/' + 'chl_nn.nc') #path to chlorophyll file 
nc_chl

n_coord =xr.open_dataset(str(nc_folder['path'])+ '/'+ 'geo_coordinates.nc') #path to coordinates file

n_time = xr.open_dataset(str(nc_folder['path'])+ '/' + 'time_coordinates.nc') …
Run Code Online (Sandbox Code Playgroud)

python netcdf satellite-image

3
推荐指数
1
解决办法
935
查看次数

open_mfdataset 与 xarray 无法找到坐标

我正在尝试下载一堆 GOES-16 辐射数据并在 xarray 中将其全部打开以使用该xr.open_mfdataset()函数进行分析。这些 netcdf 文件有一个坐标t,它是我尝试用作连接的时间戳,但当我ValueError: Could not find any dimension coordinates to use to order the datasets for concatenation尝试执行此操作时出现错误。这是我的代码以及下载两个示例 .nc 文件的链接。

下载两个文件:

wget https://noaa-goes16.s3.amazonaws.com/ABI-L1b-RadF/2019/141/02/OR_ABI-L1b-RadF-M6C14_G16_s20191410240370_e20191410250078_c20191410250143.nc
wget https://noaa-goes16.s3.amazonaws.com/ABI-L1b-RadF/2019/141/03/OR_ABI-L1b-RadF-M6C14_G16_s20191410310370_e20191410320078_c20191410320142.nc
Run Code Online (Sandbox Code Playgroud)

和代码:

import xarray as xr
ds_sst = xr.open_mfdataset("OR_ABI-L1b-RadF*nc", concat_dim='t',combine='by_coords')
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来完成这项工作,以便我可以一起打开几十个这样的文件吗?

python netcdf python-xarray

3
推荐指数
1
解决办法
5852
查看次数