Bagaimana cara mengatasi kesalahan Gdalwarp 'terlalu banyak poin gagal diubah' untuk memetakan ulang Geostationary ke Lambert conformal?

11

Saya mencoba untuk memetakan dari Geostationary ke Lambert sesuai dengan menggunakan gdalwarp. Data input saya di netcdf, dan dalam koordinat geografis (derajat) dan saya ingin menampilkan data yang dipetakan ke netcdf. Saya telah membuat file vrt yang sesuai untuk input data netcdf. Gdalwarp akan menampilkan file netcdf, tetapi data output semuanya nol dan saya menerima kesalahan berikut:

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.

Saya mencoba perintah berikut:

/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

Bisakah gdalwarp memetakan kembali dari koordinat geografis ke proyeksi? Atau apakah saya perlu menerjemahkan geografi ke proyeksi terlebih dahulu? Juga, dapatkah gdalwarp membaca informasi proyeksi langsung dari netcdf atau Anda PERLU menulis ke .vrt terlebih dahulu?

Inilah yang keluaran gdalinfo dari file input: (ini adalah file GOES 13 dari 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)

Dan info gdal tambahan pada variabel data:

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

Bantuan apa pun akan sangat dihargai!

Katie J
sumber
1
Proyeksi geos tidak akan menggunakan derajat; coba meter. Di mana Anda mendapatkan nilai + x_0 / + y_0? Berdasarkan gdalinfo, saya tidak yakin input raster di-georeferensi sama sekali. Dalam srs target, Anda memiliki + a = + b yang merupakan bola, tetapi juga menetapkan + e. Namun, + ellps adalah untuk ellipsoid yang sama sekali berbeda. Berbagai nilai + lat semua tampak aneh juga. lat_ts adalah lat dari skala sebenarnya sehingga paralel standar seperti lat_1.
mkennedy
Terima kasih. Saya akan mencoba menggunakan meter. Saya mendapatkan x_0 dan y_0 (skala dan offset) dari definisi GOES meskipun ini bukan input yang diperlukan untuk + proj = geos, jadi saya bisa mencoba mengeluarkannya. Dan terima kasih telah menunjukkan tambahan + e ellipsoid Definisi lat untuk t_srs adalah untuk AWIPS definisi lambert (ukuran output spesifik). Saya akan menambahkan info gdal apa yang dimuntahkan untuk variabel data spesifik ke pos pertanyaan (terlalu lama untuk komentar)
Katie J
Definisi AWIPS yang saya maksudkan dijelaskan di halaman ini: nws.noaa.gov/noaaport/html/icdtb48_2.html (yang pertama adalah Lambert yang saya coba remap)
Katie J
1
Hmmm, begitulah katanya lat / lon WGS84, tetapi sudut yang dilaporkan mengoordinasikan perhatian saya karena mereka hanya nilai sel mentah. LCC adalah kasus singgung - standar tunggal paralel / lintang asal semuanya pada 25N. Saya belum pernah bekerja dengan data ini, jadi saya hanya melihat info metadata.
mkennedy
Gambar tidak di-georeferensi, tetapi sumber srs adalah persediaan. Beberapa pertanyaan: * Dapatkah Anda menjalankan dengan CPL_DEBUG = GDAL_netCDF? Jadi CPL_DEBUG = GDAL_netCDF / usr / bin / gdalwarp ... Saya menduga bahwa mungkin ada masalah dengan array geolokasi. * Dapatkah Anda membuat data Anda tersedia?

Jawaban: