Introduction à NetCDF



Documents pareils
Annexe : La Programmation Informatique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

1 Description générale de VISFIELD

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Bases de programmation. Cours 5. Structurer les données


Cours Informatique Master STEP

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programmation C. Apprendre à développer des programmes simples dans le langage C

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Conservation des documents numériques

Éléments d'architecture des ordinateurs

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

Cours Informatique 1. Monsieur SADOUNI Salheddine

Représentation d un entier en base b

Codage d information. Codage d information : -Définition-

Algorithme. Table des matières

Chapitre 1 : Introduction aux bases de données

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

nom : Collège Ste Clotilde

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Cours d Algorithmique et de Langage C v 3.0

TD : Codage des images

La mémoire. Un ordinateur. L'octet. Le bit

Le chiffre est le signe, le nombre est la valeur.

Introduction à l algorithmique et à la programmation (Info 2)

Traitement numérique de l'image. Raphaël Isdant

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

1/ Présentation de SQL Server :

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Informatique Générale

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Conception de circuits numériques et architecture des ordinateurs

Chapitre 10 Arithmétique réelle

Python - introduction à la programmation et calcul scientifique

Microsoft Windows NT Server

Chap17 - CORRECTİON DES EXERCİCES

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

Présentation du module Base de données spatio-temporelles

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation Web. Madalina Croitoru IUT Montpellier

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation d un nombre en machine, erreurs d arrondis

Le codage informatique

Vers l'ordinateur quantique

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Chapitre 1 I:\ Soyez courageux!

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

L informatique en BCPST

L initiative COMODO. Compte rendu de la réunion d Autrans, Réunion COMODO MARMO, mars 2010

Plan du cours Cours théoriques. 29 septembre 2014

Guide de l informatique Fichiers et dossiers

Les bases de données Page 1 / 8

Initiation au binaire

Éléments de programmation et introduction à Java

Thunderbird en version Portable

Machines virtuelles Cours 1 : Introduction

IFT2880 Organisation des ordinateurs et systèmes

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Représentation des Nombres

Chapitre I Notions de base et outils de travail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Mise en œuvre des serveurs d application

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Cours 14 Les fichiers

HTML. Notions générales

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Ecran programmable. Testez la différence grâce. à sa puissance, sa rapidité. et ses possibilités réseaux

1. Structure d'un programme FORTRAN 95

Domaine D1 : Travailler dans un environnement numérique évolutif

Projet Matlab : un logiciel de cryptage

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Cours Bases de données

Conventions d écriture et outils de mise au point

CORBA. (Common Request Broker Architecture)

Université Montpellier 2 Master Physique et Informatique

Une version javascript sera disponible directement dans le cours prochainement.

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Conversion d un entier. Méthode par soustraction

Chapitre 13 Numérisation de l information

Introduction à l Informatique licence 1 ère année Notes de Cours

Généralités sur le Langage Java et éléments syntaxiques.

IV- Comment fonctionne un ordinateur?

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

Logiciel de Base. I. Représentation des nombres

Chap III : Les tableaux

Architecture matérielle des systèmes informatiques

TP : Gestion d une image au format PGM

Introduction aux Machines Virtuelles avec VMKit

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

I- Définitions des signaux.

Transcription:

Introduction à NetCDF École normale supérieure L3 géosciences 2014/2015 Lionel GUEZ guez@lmd.ens.fr Laboratoire de météorologie dynamique

Explications préliminaires Deux distinctions générales sur les entrées et sorties (indépendamment du langage) : accès séquentiel accès direct format texte (formatted) format binaire (unformatted) 2/27

Accès séquentiel Notion de «position courante» dans le fichier. On ne peut lire ou écrire qu'à la position courante. Pour aller d'une position à une autre, plus loin, obligation de lire tout le fichier entre les deux positions. 3/27

Accès direct Possibilité de se placer directement à un enregistrement quelconque du fichier, pour le lire ou l'écrire Possibilité de récrire n'importe quel enregistrement (sans perdre le reste du fichier) 4/27

Format texte versus format binaire Format binaire : représentation interne à l'ordinateur d'une valeur. Format texte : suite de caractères. Par exemple : 2 14 = 16384 = (100000000000000) 2 Écriture de la valeur comme texte : 5 codes de caractères, pour «1», «6», «3», «8», «4» (typiquement 5 fois huit bits) Écriture de la valeur binaire : typiquement une suite de 32 bits 5/27

Avantages du format binaire Rapidité d'exécution du programme (économie du temps de conversion à partir des caractères ou vers des caractères) Taille réduite de fichier Exemple : 8.328622e-17 4 octets en binaire, 12 octets en texte 6/27

Avantages du format binaire (suite) Exactitude (pas forcément de représentation exacte binaire d'un décimal ; pas forcément de représentation décimale exacte d'un développement binaire fini ; pas les mêmes troncatures) Exemple : 1 / 10 = 0,1 = (0,000110011001 ) 2 = 1/16 + 1/32 + 0/64 + 0/128 + 1/256 + 1/512 + 0/1024 + 7/27

Inconvénients potentiels du format binaire Si on utilise le format binaire directement dans un langage (Fortran, C, Python ) : Pas de lisibilité immédiate du fichier Pas de portabilité (le codage dépend du compilateur ou de l'interpréteur et de la machine) Problème du stockage des tableaux multidimensionnels : convention à choisir

Qu'est-ce que NetCDF? Un format de fichier (convention : suffixe.nc ) : binaire, portable destiné principalement à stocker des tableaux de nombres multi-dimensionnels (et donc à l'informatique scientifique) immédiatement lisible 9/27

Qu'est-ce que NetCDF? (suite) Des bibliothèques de procédures dans différents langages pour créer, lire, modifier des fichiers dans ce format. Les procédures NetCDF font de l'accès direct. 10/27

Quelques perspectives NetCDF est développé par Unidata (organisme public américain, National Science Foundation). Depuis 1988 Les bibliothèques NetCDF sont libres et gratuites. 11/27

Quelques perspectives (suite) Énormément utilisé en météorologie et en océanographie. Moins hégémonique mais utilisé aussi en géologie. Des dizaines de logiciels tiers gratuits pour manipuler (découper, assembler, faire des moyennes ) et visualiser les fichiers NetCDF. 12/27

Contenu d'un fichier NetCDF Méta-données : expliquent ce que sont les données. Le fichier est donc auto-descriptif. Données scalaires ou tableaux 13/27

Voir le contenu d'un fichier Utilitaire ncdump (toujours inclus dans l'installation de NetCDF) ncdump file affiche tout le contenu du fichier (la commande convertit le binaire en texte pour l'afficher). En général, pas très lisible parce que : trop long les tableaux multi-dimensionnels sont écrits comme des tableaux à une dimension 14/27

L'en-tête d'un fichier ncdump -h file affiche seulement l'en-tête ( -h pour header ) du fichier, c'est-à-dire les métadonnées. 15/27

Les trois parties de l'en-tête Dimensions : elles ont un nom et une valeur entière Variables : type, nom, dimensions entre parenthèses Les dimensions sont celles nommées plus haut 0 (scalaire), 1 ou plusieurs dimensions Pour chaque variable, des attributs. Quelques attributs importants : units, long_name, missing_value 16/27

Les trois parties de l'en-tête (suite) Attributs globaux : méta-données pour l'ensemble du fichier, et non pour une variable 17/27

Coordonnées Coordonnée NetCDF : variable NetCDF à une dimension, dont le nom est identique au nom de la dimension En général : une coordonnée par dimension Association de valeurs d'une coordonnée aux indices dans une dimension d'un tableau 18/27

Coordonnées (suite) Les coordonnées sont reconnues et traitées spécialement par de nombreux utilitaires et programmes qui lisent les fichiers NetCDF Convention : une coordonnée doit être strictement monotone 19/27

Valeurs des coordonnées ncdump -c file Fait apparaître l'en-tête déjà affiché par ncdump -h, plus une nouvelle partie data. 20/27

Variables primaires Ce sont les variables du fichier NetCDF autres que les coordonnées. Pour voir les valeurs d'une variable primaire : ncdump -v var1, file Utile pour une variable scalaire ou à une dimension, mais peu lisible pour une variable multi-dimensionnelle 21/27

Valeurs d'une variable multidimensionnelle Plus puissant que ncdump : ncks ( ks pour kitchen sink ) ncks est un des opérateurs NCO http://nco.sourceforge.net NCO : NetCDF operators, à installer en plus de NetCDF ncks permet de n'afficher qu'une partie d'une variable : la valeur en un point particulier, ou une hyper-tranche quelconque de la variable 22/27

Valeurs d'une variable multidimensionnelle (suite) ncks -v var[,...] \ -d dim,[min][,[max]] input-file Valeurs min et max dans l'argument -d : sans point décimal : indice avec point décimal : valeur de coordonnée 23/27

Valeurs d'une variable multidimensionnelle (suite) Exemple : ncks -v ta -d time,0 \ -d latitude,0. cira.nc Variable température à la date d'indice 0 (valeur de la coordonnée : 15, premier indice) et la latitude 0 (indice 16), à tous les niveaux de pression 24/27

Logiciels graphiques Très nombreux logiciels permettant de faire des graphiques à 1, 2 ou 3 dimensions, à partir de variables lues dans un fichier NetCDF 25/27

Logiciels graphiques (suite) Une toute petite sélection, du plus simple aux plus complets : ncview Grads (orienté analyse de données atmosphériques), Ferret (orienté analyse de données océaniques et atmosphériques), GMT (orienté géophysique) Python avec matplotlib, Matlab, IDL 26/27

Création ou modification d'un fichier NetCDF Interfaces dans de nombreux langages : développées par Unidata : interfaces en C, Fortran, C++, Java développées par des tiers : interfaces en Python, R, Ruby, Matlab 27/27