bonjour;

je suis nouvelle sur les fichier netCDF4 j'ai une application avec wxpython ou je peux lire les fichiers netCDF4 et les visualiser et de sélectionner des points x y des lignes et colonnes : x = col & y = row : x_coord = 89.9877 , y_coord = 35.8141 ( cordonnées sous curseur )

et les affichers sur une autre fenetres

ce que j'aimerai faire ces d'avoir des informations sur la long , lat & valeur numérique du pixel dans ce point

j'ai un code que je comprend pas comment fonctionne

voilà le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import numpy as np
import netCDF4
from netCDF4 import Dataset
 
fic='air.departure.sig995.2012.nc'
 
ncdir='/home/data/'
 
nc_data = netCDF4.Dataset(path+fic,'r')
 
varnames = nc_data.variables.keys()
 
x_coord = 89.9877
y_coord = 35.8141
 
def ExtractVarsFromNetcdf(x_coord, y_coord, path, varnames):
    """   
    @params:
        x_coord    - Required : the x coordinate of the point
        x_coord    - Required : the y coordinate of the point
        ncdir      - Required : The directory of the netcdf file.
        varnames   - Required : The netcdf variables
    """
 
    with Dataset(ncdir, "r") as nc:
 
        # Get the nc lat and lon from the point's x, y
        lon = nc.variables["lon"][int(round(x_coord))]
        lat = nc.variables["lat"][int(round(y_coord))]
 
        # Return a np.array with the netcdf data
        air_dep = np.ma.getdata(
            [nc.variables[air_dep][:, x_coord, y_coord] for air_dep in varnames]
        )
 
        return air_dep, lon, lat
quand je l’exécute y'a pas d'erreur mais quand d exécuter cette fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
nc_data, lon, lat = ExtractVarsFromNetcdf(89.9877, 35.8141, path+fic, [ air_dep])
je reçois un erreur que air_dep , lat, mon sont pas définis

j'aimerai comprendre comment marche ce code svp et ou se trouve l'erreur

merci d'avance

merci