У меня есть несколько файлов GEOTIFF, которые я хочу объединить в одну большую карту высот, используя C # с BitMiracle.LibTiff.NET.До сих пор я загрузил GEOTIFF, используя код, подобный this .Однако, когда я просто соединяю их вместе, карта высот из каждого файла GEOTIFF кажется смещенной на некоторое значение (отличающееся для каждого файла GEOTIFF), но когда я декодирую тег для них, я получаю следующее (пример):
GEOTIFF_MODELPIXELSCALETAG double [3]: 0,4, 0,4, 0
GEOTIFF_MODELTIEPOINTTAG double [6]: 0, 0, 0, 503000, 6190000, 0
что указывает на отсутствие масштабирования или смещения в направлении z (значение высоты)
Когда я в python использую следующий код, смещения между GEOTIFFS и при загрузке получающегося единственного большого GEOTIFF все не происходитвыглядит так, как я и ожидал:
import rasterio as rio
from rasterio.merge import merge
from rasterio.plot import show
import glob
tiffns = glob.glob(r'c:\GeoTiffs\*.tif')
src_files_to_merged = []
for fp in tiffns:
tif = rio.open(fp)
src_files_to_stich.append(tif)
stiched, out_trans = merge(src_files_to_stich)
show(stiched, cmap='terrain')
out_meta = tif.meta.copy()
out_meta.update({"driver": "GTiff","height": stiched.shape[1],"width": stiched.shape[2],"transform": out_trans})
outfn = r'c:\StichedGeoTiffs.tif'
with rio.open(outfn,"w",**out_meta) as dest:
dest.write(stiched)
Итак .. Я хотел бы добиться того же результата в c #.У кого-нибудь есть подсказка?
(Полагаю, одним из несовершенных вариантов было бы вычисление средней разницы (-последовательности) на границе двух, а затем исправление одного из них, но это всегда означало бы риск ошибок ...)