我正在运行 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) CDO 似乎对我来说工作得很好,直到我遇到了这个。我有一个从 2101 年到 2228 年的每日数据的 netcdf,并且我想获取一个仅包含从 2101 年到 2227 年的年份的文件,所以我运行:
cdo selyear,2101/2227 in.nc out.nc
Run Code Online (Sandbox Code Playgroud)
但输出文件的内存大小是输入文件的四倍多!它似乎具有正确的时间步数,并且初始日期和结束日期都是正确的。另外,纬度和经度似乎与输入相同,所以我想知道为什么文件大小如此。
我使用 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 文件中的全局属性之一:
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) 本质上,这是这个问题的转帖: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) 我开始用网格数据开始我的旅程,我一直在尝试从带有 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) 我有每日时间分辨率的气候数据,并希望按月和按年计算有降水(例如,大于 1 毫米/天)的天数。
我试过eca_pd,1and eca_rr1,但这些命令返回所有年份的雨天总数。
例如, cdo eca_pd,1 infile outfile
是否有命令返回每个月和/或年的雨天?
我目前正在实习大气/气候物理学。我有来自 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。
我在尝试获得 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) 我正在尝试下载一堆 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)
我可以做些什么来完成这项工作,以便我可以一起打开几十个这样的文件吗?
netcdf ×10
python ×4
cdo-climate ×3
cartopy ×2
nco ×2
netcdf4 ×2
weather ×2
era5 ×1
fortran ×1
gfortran ×1
linux ×1
matplotlib ×1
python-3.x ×1
vector ×1