python gdal портится растр

Ответить
LevLimin
Интересующийся
Сообщения: 25
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

python gdal портится растр

Сообщение LevLimin » 14 дек 2018, 09:50

Есть у меня сервер на Centos, на котором стоит GDAL 1.11.4 и Python 3, GeoServer, Apache + небольшой сайтик.

Есть код, который конвертирует jpg в tiff, который работает как вызов консольной команды gdal_translate.
И всё работает хорошо. Т.е. я через форму на сайте гружу растр, после загрузки он конвертируется в тифф,
и создаётся слой в геосервер, который отображается в OL. Это если я сижу буквально в метре от сервера =)
Если другой человек, через интернет заходит на сайт, то у него тоже всё пашет.

А вот если вместо gdal_translate, использую рукописный код, типа такого:

Код: Выделить всё

     
out_driver = gdal.GetDriverByName('GTiff')
outdataset = out_driver.Create(target_file, ds.RasterXSize, ds.RasterYSize, 1, gdal.GDT_Byte,
                                   options=[
                                       'COMPRESS=LZW',
                                       'TFW=YES',
                                       'INTERLEAVE=BAND',
                                       'NUM_THREADS=4',
                                       'PROFILE=GeoTIFF',
                                       'BIGTIFF=IF_NEEDED',
                                       'TILED=YES',
                                       'BLOCKXSIZE=256',
                                       'BLOCKYSIZE=256'])
        
ct = gdal.ColorTable()
err = gdal.ComputeMedianCutPCT(ds.GetRasterBand(1),
                                       ds.GetRasterBand(2),
                                       ds.GetRasterBand(3),
                                       256, ct,
                                       None,
                                       None)

outdataset.GetRasterBand(1).SetRasterColorTable(ct)

outdataset.SetProjection(srs_wkt)
outdataset.SetGeoTransform(dt_new)

err = gdal.DitherRGB2PCT(ds.GetRasterBand(1),
                                 ds.GetRasterBand(2),
                                 ds.GetRasterBand(3),
                                 outdataset.GetRasterBand(1),
                                 ct,
                                 None,
                                 None)
outdataset.GetRasterBand(1).SetNoDataValue(255)

outdataset.FlushCache()
outdataset = None
ds = None

То когда растр грузит удалённый товарищ, растр портится, то чёрные квадраты, то чёрные полосы или полоса.
То растр получается в негативе.

ПРичём я делаю, то всё хорошо. Локально запускаю этот скрипт на компе, всё хорошо.
Такое ощущение, что из кеша не успевают данные скидываться в файл растра.

Сталкивался кто с таким?

trir
Гуру
Сообщения: 5271
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1013
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: python gdal портится растр

Сообщение trir » 14 дек 2018, 10:06

GDAL 1.11.4 и Python 3
дико звучит

LevLimin
Интересующийся
Сообщения: 25
Зарегистрирован: 15 июл 2015, 11:14
Репутация: 0
Откуда: Нижний Новгород

Re: python gdal портится растр

Сообщение LevLimin » 14 дек 2018, 10:12

trir писал(а):
14 дек 2018, 10:06
дико звучит
Я бы с удовольствием поставил на Centos 6, GDAl 2.x, но не ставится =(

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя