Comment puis-je résoudre l'erreur de Gdalwarp «trop de points ont échoué à se transformer» pour remapper Geostationary en Lambert conforme?

11

J'essaie de remapper de Geostationary à Lambert conforme en utilisant gdalwarp. Mes données d'entrée sont en netcdf, et sont en coordonnées géographiques (degrés) et je voudrais sortir les données remappées vers netcdf. J'ai créé un fichier vrt correspondant pour les données d'entrée netcdf. Gdalwarp affichera le fichier netcdf, mais les données de sortie sont toutes des zéros et je reçois l'erreur suivante:

Creating output file that is 5120P x 5120L.
Processing input file netcdf.vrt.
ERROR 1: Too many points (441 out of 441) failed to transform,
unable to compute output bounds.
Warning 1: Unable to compute source region for output window 0,0,5120,5120, skipping.
0...10...20...30...40...50...60...70...80...90...100 - done.

J'ai tenté la commande suivante:

/usr/bin/gdalwarp -s_srs "+proj=geos +h=35785831 +lon_0=-75 +x_0=-0.151844 +y_0=0.151844 +a=6378140 +b=6356754.99999591 +units=degrees +no_defs" -t_srs "+proj=lcc +ellps=clrk66 +a=6378137 +b=6378137 +e=0.0818191910435 +lat_0=24.9999 +lon_0=-95 +lat_1=24.9999 +lat_ts=25.0001 +units=meters +no_defs" -te -1952976.3246 -828316.5944 3248431.6754 4373091.4056 -of netCDF -geoloc -overwrite -r bilinear -ts 5120 5120 netcdf.vrt out.nc

Est-ce que gdalwarp peut repapper des coordonnées géographiques en projeté? Ou dois-je d'abord traduire géographique par projeté? En outre, gdalwarp peut-il lire les informations de projection directement à partir de netcdf ou avez-vous BESOIN d'écrire d'abord en .vrt?

Voici ce que gdalinfo sort du fichier d'entrée: (c'est un fichier GOES 13 de CLASS)

Size is 512, 512
Coordinate System is `'
Metadata:
  NC_GLOBAL#Conventions=CF-1.4
  NC_GLOBAL#Satellite Sensor=G-13 IMG    
  NC_GLOBAL#Source=McIDAS Area File
Subdatasets:
  SUBDATASET_1_NAME=NETCDF:"goes13.2013.100.165517.BAND_04.nc":auditTrail
  SUBDATASET_1_DESC=[3x80] auditTrail (8-bit character)
  SUBDATASET_2_NAME=NETCDF:"goes13.2013.100.165517.BAND_04.nc":data
  SUBDATASET_2_DESC=[1x665x2036] data (32-bit floating-point)
  SUBDATASET_3_NAME=NETCDF:"goes13.2013.100.165517.BAND_04.nc":lat
  SUBDATASET_3_DESC=[665x2036] lat (32-bit floating-point)
  SUBDATASET_4_NAME=NETCDF:"goes13.2013.100.165517.BAND_04.nc":lon
  SUBDATASET_4_DESC=[665x2036] lon (32-bit floating-point)
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0,  512.0)
Upper Right (  512.0,    0.0)
Lower Right (  512.0,  512.0)
Center      (  256.0,  256.0)

Et des informations supplémentaires sur la variable de données:

Driver: netCDF/Network Common Data Format
Files: goes13.2013.100.174518.BAND_04.nc
Size is 2036, 665
Coordinate System is `'
Metadata:
  data#coordinates=lon lat
  data#long_name=0-255 Brightness Temperature
  data#type=VISR
  NC_GLOBAL#Conventions=CF-1.4
  NC_GLOBAL#Satellite Sensor=G-13 IMG    
  NC_GLOBAL#Source=McIDAS Area File
  NETCDF_DIM_EXTRA={time}
  NETCDF_DIM_time_DEF={1,4}
  NETCDF_DIM_time_VALUES=1365615900
  time#long_name=seconds since 1970-1-1 0:0:0
  time#units=seconds since 1970-1-1 0:0:0
Geolocation:
  LINE_OFFSET=0
  LINE_STEP=1
  PIXEL_OFFSET=0
  PIXEL_STEP=1
  SRS=GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]]
  X_BAND=1
  X_DATASET=NETCDF:"goes13.2013.100.174518.BAND_04.nc":lon
  Y_BAND=1
  Y_DATASET=NETCDF:"goes13.2013.100.174518.BAND_04.nc":lat
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0,  665.0)
Upper Right ( 2036.0,    0.0)
Lower Right ( 2036.0,  665.0)
Center      ( 1018.0,  332.5)
Band 1 Block=2036x1 Type=Float32, ColorInterp=Undefined
  NoData Value=9.96920996838686905e+36
  Metadata:
    coordinates=lon lat
    long_name=0-255 Brightness Temperature
    NETCDF_DIM_time=1365615900
    NETCDF_VARNAME=data
    type=VISR

Toute aide sera fortement appréciée!

Katie J
la source
1
La projection géographique n'utilisera pas de degrés; essayez les compteurs. Où obtenez-vous les valeurs + x_0 / + y_0? Basé sur gdalinfo, je ne suis pas sûr que le raster en entrée soit géoréférencé. Dans les srs cibles, vous avez + a = + b qui est une sphère, mais aussi set + e. Cependant, + ellps est pour un ellipsoïde entièrement différent. Les différentes valeurs + lat semblent également toutes étranges. lat_ts est lat de l'échelle réelle, donc un parallèle standard comme lat_1.
mkennedy
Je vous remercie. Je vais essayer d'utiliser des compteurs. J'obtiens les x_0 et y_0 (échelle et décalages) de la définition GOES bien que ce ne soient pas des entrées requises pour + proj = geos, donc je peux essayer de les supprimer. Et merci d'avoir souligné l'ajout d'ellipsoïdes + e Les définitions lat pour les t_srs sont pour la définition AWIPS de lambert (une taille de sortie spécifique). J'ajouterai ce que gdal info recrache pour la variable de données spécifique au message de question (trop long pour un commentaire)
Katie J
La définition AWIPS à laquelle je fais référence est décrite sur cette page: nws.noaa.gov/noaaport/html/icdtb48_2.html (la première est le Lambert que j'essaie de remapper )
Katie J
1
Hmmm, donc il dit lat / lon WGS84, mais les coordonnées de coin signalées me concernent parce que ce ne sont que des valeurs de cellules brutes. Le LCC est un cas tangent - un seul parallèle standard / latitude d'origine sont tous à 25N. Je n'ai travaillé avec aucune de ces données, donc je vais juste par les informations de métadonnées.
mkennedy
L'image n'est pas géoréférencée, mais une source srs est fournie. Quelques questions: * Pouvez-vous exécuter avec CPL_DEBUG = GDAL_netCDF? Donc CPL_DEBUG = GDAL_netCDF / usr / bin / gdalwarp ... Je soupçonne qu'il peut y avoir un problème avec les tableaux de géolocalisation. * Pouvez-vous rendre vos données disponibles?

Réponses: