【问题标题】:georeferencing with gdal goes wrong使用 gdal 进行地理配准出错
【发布时间】:2017-08-28 16:17:52
【问题描述】:

虽然有几个页面专门用于这项任务,但似乎我无法完成这项工作。我有一个非地理参考 tif 文件,我为您提供 gdalinfo 的输出

Driver: GTiff/GeoTIFF
Files: Arctic_r05c02.2017235.terra.250m.tif
Size is 4096, 4096
Coordinate System is `'
Metadata:
  TIFFTAG_SOFTWARE=ppm2geotiff v0.0.9
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0, 4096.0)
Upper Right ( 4096.0,    0.0)
Lower Right ( 4096.0, 4096.0)
Center      ( 2048.0, 2048.0)
Band 1 Block=4096x1 Type=Byte, ColorInterp=Red
Band 2 Block=4096x1 Type=Byte, ColorInterp=Green
Band 3 Block=4096x1 Type=Byte, ColorInterp=Blue

我确实有纬度/经度的角坐标延伸。因此,我正在使用以下命令创建地面控制点:

gdal_translate -of GTiff -gcp 0 0 -180.0000 +63.1066 -gcp 0 4096 -161.5651 +68.5979 -gcp 4096 0 +161.5651 +68.5979 -gcp 4096 4096 -180.0000 +76.3728 input.tif output.tif

结果:

Driver: GTiff/GeoTIFF
Files: Arctic_r05c02.2017235.terra.250mproj.tif
Size is 4096, 4096
Coordinate System is `'
GCP Projection = 
GCP[  0]: Id=1, Info=
          (0,0) -> (-180,63.1066,0)
GCP[  1]: Id=2, Info=
          (0,4096) -> (-161.5651,68.5979,0)
GCP[  2]: Id=3, Info=
          (4096,0) -> (161.5651,68.5979,0)
GCP[  3]: Id=4, Info=
          (4096,4096) -> (-180,76.3728,0)
Metadata:
  TIFFTAG_SOFTWARE=ppm2geotiff v0.0.9
Image Structure Metadata:
  INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left  (    0.0,    0.0)
Lower Left  (    0.0, 4096.0)
Upper Right ( 4096.0,    0.0)
Lower Right ( 4096.0, 4096.0)
Center      ( 2048.0, 2048.0)
Band 1 Block=4096x1 Type=Byte, ColorInterp=Red
Band 2 Block=4096x1 Type=Byte, ColorInterp=Green
Band 3 Block=4096x1 Type=Byte, ColorInterp=Blue

下一步是使用 gdalwarp 重新采样以创建投影文件。

gdalwarp -r near -s_srs epsg:4326 -t_srs epsg:3413 -tr 250 250 input.tif output.tif

但文件似乎失真:

知道我还能做什么吗?有没有办法直接更改 tiff 文件中的角坐标而不是添加 GCP?会有帮助吗?

我忘记了更多信息。数据可在以下网址下载:

https://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=Arctic_r05c02.2017235.terra.250m

对于边界框的定义:

https://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=Arctic_r05c02.2017235.terra.250m.met

由于 NASA 方面的框定义看起来有点奇怪,我尝试了以下图块的相同程序:

https://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=Arctic_r04c03.2017235.terra.250m

和框定义:

https://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=Arctic_r04c03.2017235.terra.250m.met

虽然盒子看起来不错,但生成了以下图像:

【问题讨论】:

  • 您确定您正确映射了坐标吗?例如,您的左上 x 坐标(经度)与右下 x 坐标相同,均为 -180。这并非不可能,但这意味着您的输入数据相对于 epsg:4326 旋转了 45 度。输入数据是否有可能是公开的?否则它的猜测。
  • 嗨,Rutger,感谢您的帖子。你对盒子的定义是正确的。这就是为什么我尝试使用另一块瓷砖。我更新了我的帖子以包含数据源以及我到目前为止所做的事情。希望这有助于找出这里有什么问题..

标签: gdal


【解决方案1】:

您下载的数据已经被投影(在 epsg:3413 中),您正在分配一个不正确的投影(epsg:4326)和边界框。

您可以通过访问以下网址查看正确的设置: https://lance-modis.eosdis.nasa.gov/imagery/subsets/?subset=Arctic_r05c02.2017235.terra.250m.gdal

在页面的一半左右,您会看到gdal_translate 命令,将其与您的输入和输出一起使用。

例如: gdal_translate -of GTiff -outsize 4096 4096 -projwin -2097152 2097152 -1048576 1048576 -a_srs "+proj=stere +lat_0=90 +lat_ts=70 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs" Arctic_r05c02.2017235.terra.250m.tif Arctic_r05c02.2017235.terra.250m_output.tif

【讨论】:

  • 太棒了!那是我一直在寻找的缺失部分。您提供的站点包含相关信息,以下载每个图块的正确区域扩展。如果您查看来自 lance 服务器的元数据,似乎在边界框上包含一些错误。我下载的数据直接来自 lance 服务器,没有投影。 xml 描述 + gdal 从 gibs.earthdata 下载数据,这些文件是地理参考的。非常感谢您的大力帮助!
  • 太棒了!我认为数据是正确“投影”的,但元数据丢失/缺失。您可以查看 gdal_edit.py 以仅更改元数据(就地)。与复制数据的gdal_translate 相比,这可以提供一些性能提升。 gdal.org/gdal_edit.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 2018-05-09
相关资源
最近更新 更多