Как связать стеки в петлю - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь создать код, который позволил бы мне складывать 10 полос одного и того же изображения для разных изображений, содержащихся в разных папках. Я пытаюсь создать код, который позволил бы мне складывать 10 полос одного и того же изображения для разных изображений, содержащихся в разных папках. Я нашел кусок кода на форуме, из которого я пытаюсь получить вдохновение, но я не могу применить его к своему делу ... Код, о котором идет речь, выглядит следующим образом:

from osgeo import gdal, gdal_array
import numpy as np
b1 = gdal.Open("LT50250232011160PAC01_sr_band1.tif")
b2 = gdal.Open("LT50250232011160PAC01_sr_band2.tif")
array1 = b1.ReadAsArray()
array2 = b2.ReadAsArray()
stacked = np.array([array1,array2])
gdal_array.SaveArray(stacked.astype("int"), "b12_stacked.tif", "GTiff", gdal.Open("LT50250232011160PAC01_sr_band1.tif"))

Мой код:

import os
from osgeo import gdal, gdal_array
import numpy as np

src_directory = "/d/afavro/Bureau/test_subset/stack_resample_subset/"
dossier = os.listdir (src_directory)
print(dossier)

for fichier in dossier:
    print (fichier)
    ssrc_directory = "/d/afavro/Bureau/test_subset/stack_resample_subset/" + fichier + "/"
    rasters = os.listdir (ssrc_directory) 
    print(rasters) 

    for img in rasters:
        print (img)

        INPUT_FOLDER = ssrc_directory
        print(INPUT_FOLDER)

        OUTPUT_FOLDER = "/d/afavro/Bureau/test_stack/" + fichier
        print(OUTPUT_FOLDER)
        if not os.path.exists(OUTPUT_FOLDER):
                    os.makedirs(OUTPUT_FOLDER)

        # Define output file name

        if img[-4:-3] == '.' :
            file_img = OUTPUT_FOLDER+'/'+os.path.basename(img[:-4])
        else:
            file_img = OUTPUT_FOLDER+'/'+os.path.basename(img)


        # Stack
       band = gdal.Open(img)
       array = band.ReadAsArray()
       stacked = np.array(array)

       gdal_array.SaveArray(stacked.astype("int"),"stack_" + fichier, "GTiff", prototype = None )

Проблема здесь, у меня есть сообщение об ошибке:

band = gdal.Open(img)
^
IndentationError: unindent does not match any outer indentation level

Я думаю, нам нужно создать пустую матрицу или что-то в этом роде, но я не совсем понимаю, как, у вас есть какие-нибудь идеи?

...