Як я можу вирішити помилку Gdalwarp "занадто багато точок не вдалося перетворити" для перестановки геостаціонарних на Ламбертову конформну?


11

Я намагаюся перевпорядкувати геостаціонарний на Ламбертовий конформний за допомогою gdalwarp. Мої вхідні дані містяться у netcdf та в географічних координатах (градусах), і я хотів би вивести перероблені дані в netcdf. Я створив відповідний файл vrt для вхідних даних netcdf. Gdalwarp виведе файл netcdf, але вихідні дані - всі нулі, і я отримаю таку помилку:

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.

Я спробував виконати таку команду:

/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

Чи може gdalwarp робити перестановку від географічних координат до прогнозованих? Або мені потрібно перекласти географічне на прогнозоване спочатку? Також, чи може gdalwarp читати інформацію про проекцію прямо з netcdf, чи потрібно НЕ писати в .vrt спочатку?

Ось що gdalinfo виводить із вхідного файлу: (це файл GOES 13 із класу)

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)

І додаткова інформація gdal про змінну даних:

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

Будь-яка допомога буде дуже вдячна!


1
Геопроекція не використовуватиме градуси; спробуйте метри. Де ви отримуєте значення + x_0 / + y_0? На основі gdalinfo, я не впевнений, що растровий вхід взагалі геореференційний. У цільових srs у вас є + a = + b, що є сферою, але також встановлено + e. Однак + ellps - це зовсім інший еліпсоїд. Усі значення + lat також здаються дивними. lat_ts - це Lat справжнього масштабу, тому стандартна паралель подібно до lat_1.
mkennedy

Дякую. Я спробую використовувати лічильники. Я отримую x_0 та y_0 (масштаб та зсуви) з визначення GOES, хоча це не потрібні введення для + proj = geos, тому я можу спробувати вийняти їх. І дякую за вказівку на додавання еліпсоїда + e. Lat визначення для t_srs - це AWIPS-дефініція ламберта (конкретний вихідний розмір). Я додам те, що інформація gdal виділяється для конкретної змінної даних до запитання (занадто довго для коментарів)
Katie J

Визначення AWIPS, на яке я маю на увазі, описане на цій сторінці: nws.noaa.gov/noaaport/html/icdtb48_2.html (перший - Ламберт, якого я намагаюся перевпорядкувати)
Katie J

1
Гммм, так що це говорить lat / lon WGS84, але повідомлені кутові координати стосуються мене, оскільки вони є просто необробленими значеннями комірок. LCC є дотичним випадком - одна стандартна паралель / широта початку походження - 25N. Я не працював з жодною з цих даних, тому я просто переходжу до інформації про метадані.
mkennedy

Зображення не геореференційне, але джерело srs - це запаси. Кілька питань: * Чи можете ви працювати з CPL_DEBUG = GDAL_netCDF? Отже CPL_DEBUG = GDAL_netCDF / usr / bin / gdalwarp ... Я підозрюю, що може виникнути проблема з масивами геолокації. * Чи можете ви зробити свої дані доступними?

Відповіді:


1

Якщо у вашому джерелі даних є значення комірок довготи та широти як окремі піддані набору даних, спробуйте створити файл vrt вручну для повторного відтворення, як описано в

Неможливо викривити файли HDF5 та gdal для повторної проекції даних VSCMO VIIRS

На першому кроці відтворіть проект на EPSG: 4326 за допомогою підданих, а потім на будь-яку CRS, яку ви хочете.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.