Различные выходные результаты из arcmap и python - PullRequest
1 голос
/ 24 февраля 2020

Это мой первый вопрос, а также мое первое испытание с использованием python кодирования для обработки изображений. Я пытаюсь рассчитать различные индексы растительности по изображениям БПЛА, используя python для ускорения процесса. Проблема в том, что когда я сравнивал выходные файлы из arcmap и python кода, были некоторые различия. Во-первых, изображения из кода python сдвигаются с исходного географического положения. Во-вторых, файлы намного больше по размеру.
Итак, мои вопросы:

  • Код ниже в порядке или его можно улучшить?
  • почему размер выходных файлов в два раза больше?
  • Почему географические положения выходных изображений слегка смещены?

Спасибо за вашу помощь.

Python код:

import os

import rasterio

import numpy as np

input_path = r"Z:\NewDeal\Input"

outDir = r"Z:\NewDeal\output"

for f in os.listdir(input_path):
    if f.endswith(".tif"):
        name1=f[:4]

        raster = rasterio.open(os.path.join(input_path, f))

        blue = raster.read(1).astype('float64')

        green = raster.read(2).astype('float64')

        red = raster.read(3).astype('float64')

        np.seterr(divide='ignore', invalid='ignore')

        #thies are the vegitation ideceis calcuilations
        ExG = 2*green - red- blue

        ro_name = "ExG"+ name1 +".tif"

        outPath = os.path.join(outDir, ro_name)

        output_name = rasterio.open(outPath,'w',driver='Gtiff',
             width= raster.width, height = raster.height,

             count=1, crs= raster.crs,

             transform=raster.transform,

             dtype='float64')

        output_name.write_band(1,ExG)

        output_name.close()

print('End of calculation and output')
...