Lire et écrire NetCDF avec Python

Remarques sur l'utilisation de NetCDF

ChangeLog --2018 / 07/04 Ajout de la façon de spécifier les valeurs manquantes --2015 / 09/04 Réflexion sur le contenu des commentaires, ajout d'une méthode d'écriture

Lis

NetCDF peut être lu par le module netCDF4. Téléchargez et installez à partir de la page Github ou Il est livré en standard avec Anaconda pour Mac et Python (x, y) pour Windows.

import netCDF4

nc = netCDF4.Dataset('filename.nc', 'r')
dim = len(nc.dimensions['dimname'])
var = nc.variables['varname'][:]

nc.close()

l'écriture

import netCDF4
from numpy import dtype

#Créez un objet et définissez le nombre de dimensions.

nc = netCDF4.Dataset('filename.nc', 'w', format='NETCDF3_CLASSIC')
nc.createDimension('ntime', len(time_out))  # e.g. time_out = [0, 1, ...]
# nc.createDimensions('ntime', None)        #Lors du réglage sur illimité
nc.createDimension('xi', x)                 # e.g. x = 10
nc.createDimension('eta', y)                # e.g. y = 10

#Après cela, définissez chaque variable.
#L'exemple suivant définit l'heure, la latitude, la longitude et les variables tridimensionnelles.

time = nc.createVariable('time', dtype('int32').char, ('ntime',))
time.long_name = 'time of test variable'
time.units = 'days since 1968-05-23 00:00:00'

lon = nc.createVariable('lon', dtype('double').char, ('eta', 'xi'))
lon.long_name = 'east longitude'
lon.units = 'degree of east longitude'

lat = nc.createVariable('lat', dtype('double').char, ('eta', 'xi'))
lat.long_name = 'north latitude'
lat.units = 'degree of north latitude'

var = nc.createVariable('varname', dtype('double').char, ('ntime', 'eta', 'xi'))
var.long_name = 'test variable'
var.units = 'unit of test variable'

#Enfin, np à l'avance.Remplacez la valeur créée par ndarray etc.

time[:] = time_out
lon[:,:] = lon_out
lat[:,:] = lat_out
var[:,:,:] = var_out

nc.close()

Comment spécifier les valeurs manquantes

Si vous souhaitez traiter une valeur spécifique comme une valeur manquante, vous pouvez définir fill_value lors de la création de la variable.

# -Lorsque 999 est une valeur manquante

var = nc.createVariable('varname', dtype('double').char, ('ntime', 'eta', 'xi'), fill_value=-999)

(Ajouté le 04/07/2018, merci @yutabvb)

Recommended Posts

Lire et écrire NetCDF avec Python
Lire et écrire du CSV avec Python
Lire et écrire des fichiers JSON avec Python
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Exemple de lecture et d'écriture de CSV avec Python
Lecture et écriture de fichiers CSV Python
Lire et écrire du texte en Python
Étude à partir de Python Lecture et écriture de fichiers Hour9
Lire et écrire des fichiers CSV et JSON avec Python
Programmation avec Python et Tkinter
Python et matériel - Utilisation de RS232C avec Python -
Dessiner un fichier netCDF avec python
Lire et écrire des fichiers csv
Lire des fichiers .txt avec Python
python avec pyenv et venv
Fonctionne avec Python et R
Chargement / affichage et accélération de gif avec python [OpenCV]
Code de caractères pour la lecture et l'écriture de fichiers csv avec python
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Scraping avec Node, Ruby et Python
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lecture de spécification de taille multiligne avec python
J'ai joué avec PyQt5 et Python3
Intégration multiple avec Python et Sympy
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Modulation et démodulation FM avec Python
Notes sur la lecture et l'écriture d'images TIFF float32 avec python
uproot: bibliothèque basée sur Python / Numpy pour lire et écrire des fichiers ROOT
Communiquez entre Elixir et Python avec gRPC
Construction de pipeline de données avec Python et Luigi
Calculer et afficher le poids standard avec python
Surveiller les pannes de Mojo avec Python et Skype
Modulation et démodulation FM avec Python Partie 3
Installation de Python et gestion des packages avec pip
Utilisation de Python et MeCab avec Azure Databricks
POSTER diversement avec Python et recevoir avec Flask
Capturer des images avec Pupil, python et OpenCV
Fractal pour faire et jouer avec Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Utilisez PIL ou Pillow avec Cygwin Python
Créer et décrypter du code César avec python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Gérer les "années et mois" en Python
(Python) Remarques sur la lecture de HTML et l'utilisation d'expressions régulières
[Easy Python] Lecture de fichiers Excel avec openpyxl
J'ai installé et utilisé Numba avec Python3.5
Analyse des tweets avec Python, Mecab et CaboCha
Lier Python et JavaScript avec le notebook Jupyter
Surveillance du trafic avec Kibana, ElasticSearch et Python
Modulation et démodulation FM avec Python Partie 2