2017-02-16 31 views
1

Я пытаюсь импортировать растровый файл в PostGIS через Django Shell. Я создаю класс в моей модели, выглядит следующим образом:GeoDjango tif import with «Растр должен быть открыт в режиме записи для изменения значения ошибки»

class MaxentModel(gismodels.Model): 
    birdname = models.ForeignKey('BirdName', null=True) 
    model_probability = gismodels.RasterField(srid=4326, null=True) 

Затем я хочу попробовать импортировать первые растровые данные с этими командами из документации (попытался в Django оболочки):

>>>from validation_birds.models import BirdName, MaxentModel 
>>>taxon_name_object = BirdName.objects.filter(name_cz='name of the bird')[0] 
>>>rast = MaxentModel(birdname=taxon_name_object, model_probability='/path/to/file/picture.tif') 
>>>rast.save() 

Но с Раст .save() исключения поднимается, и я получаю эту ошибку:

raise GDALException('Raster needs to be opened in write mode to change values.') 
django.contrib.gis.gdal.error.GDALException: Raster needs to be opened in write mode to change values. 

Что это означает, что растр нужно открыть в режиме записи и почему GDAL хочет изменения значений (это из-за какой-то установки)? Как я могу преодолеть эту ошибку?

я не могу найти какую-то информацию об этом исключение, так что я буду рад за любую помощь

ответ

1

Таким образом, я нашел решение. Я был смущен документацией, но необходим для создания объекта GDALRaster, и этот объект можно использовать для RasterField в geodjango. Вот код:

>>> from validation_birds.models import BirdName, MaxentModel 
>>> taxon_name_object = BirdName.objects.filter(name_cz='name of the bird')[0] 
>>> from django.contrib.gis.gdal import GDALRaster 
>>> gdal_raster = GDALRaster('pathtofile.tif', write=True) 
>>> rast = MaxentModel(birdname=taxon_name_object, model_probability=gdal_raster) 
>>> rast.save() 

 Смежные вопросы

  • Нет связанных вопросов^_^