Создайте класс для gdal open - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в python (2.6) и имею простую функцию, чтобы открывать геотиф с помощью gdal. Возвращает массив изображений и размер изображения (x, y).

def gdal_open(raster_file):

    if type(raster_file) is str and os.path.isfile(raster_file):
        gd_img = gdal.Open(raster_file)
        img_x = gd_img.RasterXSize # column
        img_y = gd_img.RasterYSize # row
        img = gd_img.ReadAsArray(0, 0, img_x, img_y)

    elif type(raster_file) is str and not os.path.isfile(raster_file):
        raise IOError

    return img, img_x, img_y

Я хочу преобразовать это в класс, чтобы получить img, img.x и img.y в качестве выходных данных. Кто-нибудь может мне помочь?

Спасибо, Jay

1 Ответ

0 голосов
/ 07 июля 2018

вот класс, его зовут IMG

class IMG:

def __init__(self,path):
    if type(path)==str and os.path.isfile(path):
        self.path=path
        self.Raster=gdal.Open(path)
    elif type(path)==str and not os.path.isfile(path):
        raise IOError

def X(self):
    return self.Raster.RasterXSize

def Y(self):
    return self.Raster.RasterYSize

def RasterArray(self):
    return self.Raster.ReadAsArray()

и использовать его

путь_к_файл = "путь / raster_name.tif"

растровый = IMG (FilePath)

XSIZE = raster.X ()

YSIZE = raster.Y ()

массив = raster.RasterArray ()

...