Слияние / мозаика / сшивание нескольких файлов GEOTIFF c # - PullRequest
0 голосов
/ 03 июня 2019

У меня есть несколько файлов 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 #.У кого-нибудь есть подсказка?

(Полагаю, одним из несовершенных вариантов было бы вычисление средней разницы (-последовательности) на границе двух, а затем исправление одного из них, но это всегда означало бы риск ошибок ...)

...