我知道有像软件wgrib2将在文件转换grib和grib2格式的NetCDF文件,但我需要走另一条路:从NetCDF到grib2,因为这里的当地天气办公室只能消耗在栅格数据grib2格式.
似乎一个解决方案可以在Python中,使用NetCDF4-Python库(或其他)来读取NetCDF文件并使用pygrib进行编写grib2.
有没有更好的办法?
新来Python,我一直在尝试不同的IDE和Python分布。到目前为止,我已经使用了Jetbrains IDE,并且似乎是所有这些中最成熟的IDE。
项目中的人员喜欢科学发行版(Continent IO和Enthought)。我倾向于Enthought,因为这些netCDF库针对所有平台打包。
想知道将Canvas中的PyCharm引入Python环境的诀窍是什么?同时使用Mac和Windows。
尝试了此处列出的路径:https : //support.enthought.com/entries/23646538-Make-Canopy-s-Python-be-your-default-Python-ie-on-the-PATH-
但对话框显示,这pyvenv.cfg不是正确的Python SDK。还尝试Python.exe了scripts目录中的。
我有 5 个带有系泊电流计数据的 netCDF 文件。每个文件看起来像这样:
<xarray.Dataset>
Dimensions: (BINDEPTH: 50, INSTRDEPTH: 3, LATITUDE: 5, LONGITUDE: 5, TIME: 44106)
Coordinates:
* INSTRDEPTH (INSTRDEPTH) float64 100.0 280.0 600.0
* LATITUDE (LATITUDE) float64 -34.04 -33.8 -33.67 -33.56 -33.51
* LONGITUDE (LONGITUDE) float64 27.57 27.59 27.64 27.72 27.86
* TIME (TIME) datetime64[ns] 2015-04-11T15:00:00 ...
Dimensions without coordinates: BINDEPTH
Data variables:
PRES (TIME, INSTRDEPTH) float32 dask.array<shape=(44106, 3), chunksize=(44106, 3)>
VCUR (TIME, BINDEPTH) float32 dask.array<shape=(44106, 50), chunksize=(44106, 50)>
UCUR (TIME, BINDEPTH) float32 dask.array<shape=(44106, 50), chunksize=(44106, 50)>
WCUR …Run Code Online (Sandbox Code Playgroud) 我想用Python制作netcdf文件的副本.
有很好的例子来说明如何读取或写入netcdf文件,但也许有一个很好的方法如何输入然后输出变量到另一个文件.
一个好的简单方法会很好,以便以最低的成本将维度和维度变量输出到输出文件.
有什么方法可以netCDF使用向文件添加全局属性xarray吗?当我做类似的事情时hndl_nc['global_attribute'] = 25,它只是添加了一个新变量。
我有一些数据框需要求和,但其中一些缺少列。不幸的是,结果将具有这些列的 NaN 值,而某些输入数据帧中缺少这些值。
如何保留这些列的原始值?
这是一个小代码:
#!/usr/bin/env ipython
# ---------------------
import pandas as pd
import numpy as np
import datetime
# ----------------------------------------
N=10
years = [vv for vv in range(2010,2010+N)]
# generate data:
data_a = {'years':years,'A':np.random.random(N),'B':np.random.random(N)}
data_b = {'years':years,'A':np.random.random(N),'C':np.random.random(N)}
# ----------------------------------------
dfa = pd.DataFrame.from_dict(data_a);dfa = dfa.set_index('years')
dfb = pd.DataFrame.from_dict(data_b);dfb = dfb.set_index('years')
dfc = dfa + dfb
# ----------------------------------------
Run Code Online (Sandbox Code Playgroud)
而不是将 dfc 设为:
A B C
years
2010 0.830207 NaN NaN
2011 1.237387 NaN NaN
2012 1.386908 NaN NaN
2013 0.949136 NaN NaN …Run Code Online (Sandbox Code Playgroud)