2017-05-14 2 views
0

Je veux tracer section transversale le long de la longitude en utilisant python le module Iris qui a développé pour l'océanographie et de la météorologie, j'utilise leur exemple: http://scitools.org.uk/iris/docs/v1.4/examples/graphics/cross_section.html J'ai essayé de changer leur code à mon exemple, mais la sortie de mon code est vide.parcelle de section transversale en utilisant python Module Iris

données: http://data.nodc.noaa.gov/thredds/fileServer/woa/WOA09/NetCDFdata/temperature_annual_1deg.nc

import iris 
import iris.plot as iplt 
import iris.quickplot as qplt 

# Enable a future option, to ensure that the netcdf load works the same way 
# as in future Iris versions. 
iris.FUTURE.netcdf_promote = True 

# Load some test data. 
fname = 'temperature_annual_1deg.nc' 

theta = iris.load_cube(fname, 'sea_water_temperature') 
# Extract a single depth vs longitude cross-section. N.B. This could 
# easily be changed to extract a specific slice, or even to loop over *all* 
# cross section slices. 
cross_section = next(theta.slices(['longitude', 
            'depth'])) 

qplt.contourf(cross_section, coords=['longitude', 'depth'], 
       cmap='RdBu_r') 
iplt.show() 
+0

Je ne pense pas que l'étiquette de l'océan ici est correct; il ne s'agit pas de la plate-forme de développement pétrolier et gazier, voir http://stackoverflow.com/questions/tagged/ocean – ThomasG

+0

Vous avez raison, je pensais que c'est un tag général –

Répondre

0

Ce que vous devez comprendre ici est que votre position actuelle cross_section est défini comme premier membre de theta.slices iterator, ce qui signifie qu'elle commence à partir de l'une des extrémités de coordonnées (qui sont vides en cas de courant). Vous devez donc répéter aux autres membres de l'itérateur jusqu'à ce que vous obteniez des données. Si vous ajoutez ces lignes au code, peut-être qu'il aide à comprendre ce qui se passe:

import numpy as np 
cs = theta.slices(['longitude', 'depth']) 
for i in cs: 
    print(np.nanmax(i)) 

qui devrait imprimer quelque chose comme:

-- 
-- 
-- 
-0.8788 
-0.9052