ฉันจะแก้ไขข้อผิดพลาด Gdalwarp ได้อย่างไร 'มีหลายจุดที่ไม่สามารถแปลง' สำหรับการแมป Geostationary ไปยัง Lambert conformal ได้อย่างไร


11

ฉันกำลังพยายามแมปจาก Geostationary ไปยัง Lambert โดยใช้ 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 จาก 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)

และข้อมูล 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 of scale จริงดังนั้นขนานมาตรฐานเหมือนกับ lat_1
mkennedy

ขอบคุณ. ฉันจะลองใช้มิเตอร์ ฉันได้รับ x_0 และ y_0 (สเกลและออฟเซ็ต) จากข้อกำหนด GOES แม้ว่าสิ่งเหล่านี้ไม่จำเป็นต้องใช้อินพุตสำหรับ + ​​proj = geos ดังนั้นฉันจึงสามารถลองนำมันออกได้ และขอบคุณสำหรับการชี้ให้เห็นการบวก + e ellipsoid คำจำกัดความ lat สำหรับ t_srs สำหรับคำจำกัดความ AWIPS ของ Lambert (ขนาดเอาต์พุตเฉพาะ) ฉันจะเพิ่มสิ่งที่ข้อมูล gdal พ่นออกมาสำหรับตัวแปรข้อมูลที่เฉพาะเจาะจงไปยังโพสต์คำถาม (ยาวเกินไปสำหรับความคิดเห็น)
Katie J

คำจำกัดความ AWIPS ที่ฉันหมายถึงมีการอธิบายไว้ในหน้านี้: nws.noaa.gov/noaaport/html/icdtb48_2.html (อันแรกคือ Lambert ที่ฉันพยายามทำการแมปใหม่)
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

ในขั้นตอนแรก reproject เป็น EPSG: 4326 โดยใช้ชุดย่อยแล้วไปที่ CRS ที่คุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.