2017-02-16 3 views
1

Django Shell経由でPostGISにラスターファイルをインポートしようとしています。私は、私のモデルでクラスを作成するには、以下のようになります。GeoDjango tifインポートで「値を変更するために書き込みモードでRasterを開く必要があります」エラー

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() 

しかし、RASTと.SAVE()例外が発生し、私はこのエラーを取得している:それは(それがあるため、いくつかの設定である)ことラスタが書き込みモードでオープンする必要があり、なぜGDALが変更値を望んでいる

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. 

何を意味するのでしょうか?このエラーをどうやって解決できますか?

私はだから私は解決策を見つけた任意のヘルプ

答えて

1

ため喜んでいるでしょうので、私は、この例外に関するいくつかの情報を見つけることができません。私はドキュメントに混乱しましたが、GDALRasterオブジェクトを作成するために必要です。このオブジェクトはgeodjangoのRasterFieldに使用できます。ここにコードがあります:

>>> 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() 
関連する問題