API GDALLink to this heading
GDAL kepanjangan untuk Geospatial Data Abstraction Library, dan adalah sungguh "Swiss army knife" dari kegunaan data GIS. Sebuah bagian dari GDAL adalah OGR Simple Features Library, yang khusus dalam membaca dan menulis data geografis vektor dalam beragam bentuk standar.
GeoDjango menyediakan antarmuka python tingkat-tinggi untuk beberapa dari kemampuan dari OGR, termasuk membaca dan perubahan kordinat dari data spasial vektor dan dukungan minimal untuk fitur-fitur GDAL dengan sehubungan data (gambar) raster.
IkhtisarLink to this heading
Data ContohLink to this heading
The GDAL/OGR tools described here are designed to help you read in your geospatial data, in order for most of them to be useful you have to have some data to work with. If you're starting out and don't yet have any data of your own to use, GeoDjango tests contain a number of data sets that you can use for testing. You can download them here:
$ wget https://raw.githubusercontent.com/django/django/master/tests/gis_tests/data/cities/cities.{shp,prj,shx,dbf}
$ wget https://raw.githubusercontent.com/django/django/master/tests/gis_tests/data/rasters/raster.tif
Vector Data Source ObjectLink to this heading
DataSourceLink to this heading
DataSource is a wrapper for the OGR data source object that
supports reading data from a variety of OGR-supported geospatial file
formats and data sources using a consistent interface. Each
data source is represented by a DataSource object which contains
one or more layers of data. Each layer, represented by a Layer
object, contains some number of geographic features (Feature),
information about the type of features contained in that layer (e.g.
points, polygons, etc.), as well as the names and types of any
additional fields (Field) of data that may be associated with
each feature in that layer.
- class DataSource(ds_input, encoding='utf-8')Link to this definition
Pembangun untuk
DataSourcehanya membutuhkan satu parameter: jalur dari berkas anda ingin baca. Bagaimanapun, OGR juga mendukung beragam sumber data lebih rumit, termasuk basisdata, yang mungkin diakses dengan melewatkan string nama khusus daripada jalur. Untuk informasi lebih, lihat dokumentasi OGR Vector Formats. Sifatnamedari sebuah instanceDataSourcememberikan nama OGR dari sumber data pokok yang itu sedang gunakan.Pilihan parameter
encodingmengizinkan anda menentukan penyandian bukan-standar dari string di sumber. Ini khususnya berguna ketika anda mendapatkan pengecualianDjangoUnicodeDecodeErrorselagi membaca nilai bidang.Sekali anda telah membuat
DataSourceanda, anda dapat menemukan seberapa banyak lapisan data itu kandung dengan mengakses sifatlayer_count, atau (setara) dengan menggunakan fungsilen(). Untuk informasi pada mengakses lapisan dari data mereka sendiri, lihat bagian lain:>>> from django.contrib.gis.gdal import DataSource >>> ds = DataSource('/path/to/your/cities.shp') >>> ds.name '/path/to/your/cities.shp' >>> ds.layer_count # This file only contains one layer 1- layer_countLink to this definition
Mengembalikan sejumlah lapisan di sumber data.
Mengembalikan nama dari sumber data.
LapisanLink to this heading
- class LayerLink to this definition
Layeradalah sebuah pembungkus untuk lapisan dari data di obyekDataSource. Anda tidak pernah membuat obyekLayersecara langsung. Sebagai gantinya, anda mengambil mereka dari obyekDataSource, yang pada dasarnya wadah standar Python dari obyekLayer. Sebagai contoh, anda dapat mengakses lapisan khusus dengan indeksnya (misalnyads[0]untuk mengakses lapisan pertama), atau anda dapat mengulang terhadap semua lapisan di wadah dalam perulanganloop.Layeritu sendiri bertindak sebagai sebuah wadah untuk fitur-fitur geometris.Khususnya, semua fitur di lapisan yang diberikan mempunyai jenis geometri sama. Sifat
geom_typedari lapisan adalah sebuahOGRGeomTypeyang mencirikan jenis fitur. Kami dapat menggunakan itu untuk mencetak beberapa informasi dasar tentang setiap lapisan diDataSource:>>> for layer in ds: ... print('Layer "%s": %i %ss' % (layer.name, len(layer), layer.geom_type.name)) ... Layer "cities": 3 PointsKeluaran contoh adalah dari sumber data kota, dimuat diatas, yang ternyata mengandung satu lapisan, dipanggil
"cities", yang mengandung tida titik fitur. Untuk kemudahan, contoh-contoh diatas menganggap bahwa anda telah menyimpan lapisan itu di variabellayer:>>> layer = ds[0]Mengembalikan nama lapisan ini di sumber data.
>>> layer.name 'cities'- num_featLink to this definition
Mengembalikan sejumlah fitur-fitur di lapisan. Sama seperti
len(layer):>>> layer.num_feat 3- geom_typeLink to this definition
Mengembalikan jenis geometri dari lapisan, sebagai sebuah obyek
OGRGeomType:>>> layer.geom_type.name 'Point'- num_fieldsLink to this definition
Mengembalikan sejumlah bidang di lapisan, yaitu sejumlah bidang dari data terhubung dengan setiap fitur di lapisan:
>>> layer.num_fields 4- fieldsLink to this definition
Mengembalikan daftar nama dari setiap bidang di lapisan ini:
>>> layer.fields ['Name', 'Population', 'Density', 'Created']Mengembalikan daftar dari jenis-jenis data dari setiap bidang di lapisan ini. Ini adalah subkelas dari
Field, diobrolkan dibawah:>>> [ft.__name__ for ft in layer.field_types] ['OFTString', 'OFTReal', 'OFTReal', 'OFTDate']- field_widthsLink to this definition
Mengembalikan daftar dari bidang maksimal untuk setiap bidang dalam lapisan ini:
>>> layer.field_widths [80, 11, 24, 10]- field_precisionsLink to this definition
Mengembalikan daftar dari angka ketelitian untuk setiap dari bidang-bidang dalam lapisan ini. Ini tidak berarti (dan disetel ke nol) untuk bidang bukan-numerik:
>>> layer.field_precisions [0, 0, 15, 0]- extentLink to this definition
Mengembalikan tingkatan spasial dari lapisan ini, sebagai sebuah obyek
Envelope:>>> layer.extent.tuple (-104.609252, 29.763374, -95.23506, 38.971823)Sifat yang mengembalikan
SpatialReferenceterkait dengan lapisan ini:>>> print(layer.srs) GEOGCS["GCS_WGS_1984", DATUM["WGS_1984", SPHEROID["WGS_1984",6378137,298.257223563]], PRIMEM["Greenwich",0], UNIT["Degree",0.017453292519943295]]Jika
Layertidak mempunyai informasi acuan spasial terkait dengan itu, `` None`` dikembalikan.- spatial_filterLink to this definition
Sifat mungkin digunakan untuk mengambil atau menyetel penyaring spasial untuk lapisan ini. Sebuah penyaring spasial hanya dapat disetel dengan sebuah instance
OGRGeometry, sebuah perpanjangan 4-tuple, atauNone. Ketika menyetel dengan sesuatu selain dariNone, hanya fitur-fitur yang saling menyilang penyaring akan dikembalikan ketika memutar terhadap lapisan:>>> print(layer.spatial_filter) None >>> print(len(layer)) 3 >>> [feat.get('Name') for feat in layer] ['Pueblo', 'Lawrence', 'Houston'] >>> ks_extent = (-102.051, 36.99, -94.59, 40.00) # Extent for state of Kansas >>> layer.spatial_filter = ks_extent >>> len(layer) 1 >>> [feat.get('Name') for feat in layer] ['Lawrence'] >>> layer.spatial_filter = None >>> len(layer) 3- get_fields()Link to this definition
Sebuah metode yang mengembalikan sebuah daftar dari nilai-nilai dari bidang yang diberikan untuk setiap fitur dalam lapisan:
>>> layer.get_fields('Name') ['Pueblo', 'Lawrence', 'Houston']- get_geoms(geos=False)Link to this definition
Sebuah metode yang mengembalikan sebuah list mengandung geometri dari setiap fitur dalam lapisan. Jika argumen pilihan
geosdisetel menjadiTruekemudian geometri dirubah ke obyekGEOSGeometry. Sebaliknya, mereka dikembalikan sebagai obyekOGRGeometry:>>> [pt.tuple for pt in layer.get_geoms()] [(-104.609252, 38.255001), (-95.23506, 38.971823), (-95.363151, 29.763374)]- test_capability(capability)Link to this definition
Mengembalikan boolean menunjukkan apakah lapisan ini mendukung kemampuan yang diberikan (sebuah string). Contoh dari kemampuan sah termasuk:
'RandomRead','SequentialWrite','RandomWrite','FastSpatialFilter','FastFeatureCount','FastGetExtent','CreateField','Transactions','DeleteFeature', dan'FastSetNextByIndex'.
FeatureLink to this heading
- class FeatureLink to this definition
Featuremembungkus fitur OGR. Anda tidak pernah membuat obyekFeaturesecara langsung. Sebagai gantinya, anda mengambil mereka dari obyekLayer. Setiap fitur terdiri dari sebuah geometri dan sekumpulan bidang mengandung sifat-sifat tambahan. Geometri dari sebuah bidang adalah dapat diakses melalui sifatgeomnya, yang mengembalikan sebuah obyekOGRGeometry. SebuahFeatureberperilaku seperti wadah Python standar untuk bidangnya, yang itu dikembalikan sebagai obyekField: anda dapat mengakses sebuah bidang secara langsung berdasarkan indeks atau namanya, atau dapat berulang terhadap bidang-bidang fitur, misalnya di sebuah perulanganfor.Mengembalikan geometri untuk fotur ini, sebagai sebuah obyek
OGRGeometry:>>> city.geom.tuple (-104.609252, 38.255001)Sebuah metode yang mengembalikan nilai dari bidang yang diberikan (ditentukan oleh nama) untuk fitur ini, bukan sebuah obyek pembungkus
Field:>>> city.get('Population') 102121- geom_typeLink to this definition
Mengembalikan jenis geometri untuk fitur ini, sebagai sebuah obyek
OGRGeomType. Ini akan sama untuk semua fitur dalam lapisan yang diberikan dan setara pada sifatLayer.geom_typedari obyekLayerfitur berasal.- num_fieldsLink to this definition
Mengembalikan sejumlah bidang-bidang dari data terkait dengan fitur. Ini akan sama untuk semua fitur dalam lapisan yang diberikan dan setara pada sifat
Layer.num_fieldsdari obyekLayerfitur berasal.- fieldsLink to this definition
Mengembalikan daftar dari nama-nama dari bidang data terkait dengan fitur. Ini akan sama untuk semua fitur dalam lapisan yang diberikan dan setara pada sifat
Layer.fieldsdari fitur obyekLayeryang datang.Mengembalikan penciri fitur dalam lapisan:
>>> city.fid 0- layer_nameLink to this definition
Mengembalikan nama dari
Layeryang berasal fitur. Ini akan menjadi sama untuk semua fitur dalam lapisan yang diberikan:>>> city.layer_name 'cities'Sebuah metode yang mengembalikan indeks dari nama bidang yang diberikan. Ini akan sama untuk semua fitur-fitur dalam lapisan yang diberikan:
>>> city.index('Population') 1
FieldLink to this heading
- class FieldLink to this definition
-
Mengembalikan nama dari bidang ini:
>>> city['Name'].name 'Name'Mengembalikan jenis OGR dari bidang ini, sebagai sebuah integer. Dictionary
FIELD_CLASSESmemetakan nilai-nilai ini kedalam subkelas dariField:>>> city['Density'].type 2- type_nameLink to this definition
Mengembalikan string dengan nama dari jenis data dari bidang ini:
>>> city['Name'].type_name 'String'Mengembalikan nilai dari bidang ini. Kelas
Fielditu sendiri mengembalikan nilai sebagai sebuah string, tetapi setiap subkelas mengembalikan nilai dalam bentuk paling sesuai:>>> city['Population'].value 102121Mengembalikan lebar bidang ini:
>>> city['Name'].width 80- precisionLink to this definition
Mengembalikan ketelitian numerik dari bidang ini. Ini tidak berarti (dan disetel ke nol) untuk bidang-bidang bukan-numerik:
>>> city['Density'].precision 15- as_double()Link to this definition
Mengembalikan nilai dari bidang sebagai double (float):
>>> city['Density'].as_double() 874.7- as_int()Link to this definition
Mengembalikan nilai dari bidang sebagai integer:
>>> city['Population'].as_int() 102121- as_string()Link to this definition
Mengembalikan nilai dari bidang sebagai deretan kalimat:
>>> city['Name'].as_string() 'Pueblo'- as_datetime()Link to this definition
Mengembalikan nilai dari bidang sebagai tuple dari komponen tanggal dan waktu:
>>> city['Created'].as_datetime() (c_long(1999), c_long(5), c_long(23), c_long(0), c_long(0), c_long(0), c_long(0))
DriverLink to this heading
- class Driver(dr_input)Link to this definition
Kelas
Driverdigunakan secara mendalam untuk membungkus sebuah driverDataSourceOGR.- driver_countLink to this definition
Mengembalikan sejumlah driver vektor OGR saat ini terdaftar.
Geometri OGRLink to this heading
OGRGeometryLink to this heading
Obyek-obyek OGRGeometry berbagi fungsi mirip dengan obyek GEOSGeometry dan pembungkus tipis disekitar perwakilan geometri internal OGR. Dengan demikian, mereka mengizinkan untuk lebih efektid mengakses ke data ketika menggunakan DataSource. Tidak seprti pasangan GEOS nya, OGRGeometry mendukung sistem acuan spasial dan perubahan kordinat:
>>> from django.contrib.gis.gdal import OGRGeometry
>>> polygon = OGRGeometry('POLYGON((0 0, 5 0, 5 5, 0 5))')
- class OGRGeometry(geom_input, srs=None)Link to this definition
Obyek ini adalah sebuah pembungkus untuk kelas OGR Geometry. Obyek-obyek ini diinstasiasikan secara langsung dari parameter
geom_inputyang diberikan, yang mungkin berupa string mengandung WKT, HEX, GeoJSON, sebuahbuffermengandung data WKB, atau sebuah obyekOGRGeomType. Obyek-obyek ini juga dikembalikan dari atributFeature.geom, ketika membaca data vektor dariLayer(yaitu pada giliran bagian dari sebuahDataSource).- classmethod from_gml(gml_string)Link to this definition
Membangun sebuah
OGRGeometrydari string GML yang diberikan.- classmethod from_bbox(bbox)Link to this definition
Membangun sebuah
Polygondari kotak-terikat diberikan (4-tuple).- __len__()Link to this definition
Mengembalikan sejumlah titik dalam sebuah
LineString, sejumlah geometri dalam sebuahGeometryCollection. Tidak diberlakukan ke jenis geometri lain.- __iter__()Link to this definition
Perulangan terhadap titik-titik dalam sebuah
LineString, lingkaran dalamPolygon, atau geometri dalam sebuahGeometryCollection. Tidak dapat diterapkan pada jenis-jenis geometri lain.- __getitem__()Link to this definition
Mengembalikan titik pada indeks yang ditentukan untuk
LineString, lingkaran dalam pada indeks ditentukan untukPolygon, atau geometri pada indeks ditentukan dalam sebuahGeometryCollection. Tidak dapat diberlakukan pada jenis-jenis geometri lain.- dimensionLink to this definition
Mengembalikan sejumlah dimensi kordinat dari geometri, yaitu 0 untuk titik, 1 untuk baris, dan sebagainya:
>> polygon.dimension 2- coord_dimLink to this definition
mengembalikan atau menyetel dimensi kordinat dari geometri ini. Sebagai contoh, nilai akan berupa 2 untuk geometri dua-dimensi.
- geom_countLink to this definition
Mengembalikan sejumlah unsur dalam geometri ini:
>>> polygon.geom_count 1- point_countLink to this definition
Mengembalikan sejumlah titik digunakan untuk menggambarkan geometri ini:
>>> polygon.point_count 4- num_pointsLink to this definition
Nama lain untuk
point_count.- num_coordsLink to this definition
Nama lain untuk
point_count.- geom_typeLink to this definition
Mengembalikan jenis dari geometri ini, sebagai sebuah obyek
OGRGeomType.- geom_nameLink to this definition
Mengembalikan nama dari jenis dari geometri ini:
>>> polygon.geom_name 'POLYGON'Mengembalikan kawasan dari geometri ini, atau 0 untuk geometri yang tidak mengandung sebuah kawasan:
>>> polygon.area 25.0- envelopeLink to this definition
Mengembalikan sampul dari geometri ini, sebagai sebuah obyek
Envelope.- extentLink to this definition
Mengembalikan amplop dari geometri ini sebagai 4-tuple, sebagai ganti dari
Envelopeobject:>>> point.extent (0.0, 0.0, 5.0, 5.0)Sifat ini mengendalikan acuan spasial untuk geometri ini, atau
Nonejika tidak ada sisterm acuan spasia telah diberikan ke itu. Jika diberikan, mengakses sifat ini mengembalikan sebuah obyekSpatialReference. Itu mungkin disetel dengan obyekSpatialReferencelain, atau masukan apapun yangSpatialReferenceterima. Contoh:>>> city.geom.srs.name 'GCS_WGS_1984'Mengembalikan atau menyetel penciri acuan berhubungan pada
SpatialReferencedari geometri ini. MengembalikanNonejika tidak ada informasi acuan spasial terkait dengan geometri ini, atau jika sebuah SRID tidak dapat ditentukan.Mengebalikan obyek
GEOSGeometrysesuai pada geometri ini.Mengembalikan sebuah string perwakilan dari geometri ini dalam bentuk GML:
>>> OGRGeometry('POINT(1 2)').gml '<gml:Point><gml:coordinates>1,2</gml:coordinates></gml:Point>'Mengembalikan perwakilan string dari geometri ini dalam bentuk HEX WKB:
>>> OGRGeometry('POINT(1 2)').hex '0101000000000000000000F03F0000000000000040'Mengembalikan string perwakilan dari geometri ini dalam bentuk JSON:
>>> OGRGeometry('POINT(1 2)').json '{ "type": "Point", "coordinates": [ 1.000000, 2.000000 ] }'Mengembalikan perwakilan string dari geometri ini dalam bentuk KML.
- wkb_sizeLink to this definition
Mengembalikan ukuran dari penyangga WKB untuk menahan perwakilan WKB dari geometri ini:
>>> OGRGeometry('POINT(1 2)').wkb_size 21Mengembalikan sebuah
buffermengandung perwakilan WKB dari geometri ini.Mengembalikan perwakilan string dari geometri ini dalam bentuk WKT.
Mengembalikan perwakilan EWKT dari geometri ini.
- clone()Link to this definition
Mengembalikan klon baru
OGRGeometrydari obyek geometri ini.- close_rings()Link to this definition
Jika ada lingkaran apapun dalam geometri ini yang belum ditutup, rutin ini akan melakukannya dengan menambahkan titik awalan ke akhiran:
>>> triangle = OGRGeometry('LINEARRING (0 0,0 1,1 0)') >>> triangle.close_rings() >>> triangle.wkt 'LINEARRING (0 0,0 1,1 0,0 0)'- transform(coord_trans, clone=False)Link to this definition
Merubah geometri ini menjadi sistem acuan spasial berbeda. Mungkin ambil obyek
CoordTransform, sebuah obyekSpatialReference, atau masukan apapun yang diterima olehSpatialReference(termasuk WKT acuan spasial dan string PROJ.4, atau integer SRID).Secara awalan dikembalikan dan geometri dirubah di-tempat. Bagaimanapun, jika kata kunci
clonedisetel menjadiTruekemudian kloningan dirubah dari geometri dikembalikan sebagai gantinya- intersects(other)Link to this definition
Mengembalikan
Truejika geometri ini memotong ke lain, sebaliknya mengembalikanFalse.- equals(other)Link to this definition
Mengembalikan
Truejika geometri ini setara dengan lain, sebaliknya mengembalikanTrue.- disjoint(other)Link to this definition
Mengembalikan
Truejka geometri ini secara spasial menguraikan ke (yaitu tidak bersimpangan) lain, sebaliknya mengembalikanFalse.- touches(other)Link to this definition
Mengembalikan
Truejika geometri ini menyentuh lainnya, sebaliknya mengembalikanFalse.- crosses(other)Link to this definition
Mengembalikan
Truejika geometri ini bersilangan ke lainnya, sebaliknya mengembalikanFalse.- within(other)Link to this definition
Mengembalikan
Truejika geometri ini mengandung dalam yang lain, sebaliknya mengembalikanFalse.- contains(other)Link to this definition
Mengembalikan
Truejika geometri ini mengandung yang lainnya, sebaliknya mengembalikanFalse.- overlaps(other)Link to this definition
Mengembalikan
Truejika geometri ini tumpang tindih yang lain, sebaliknya mengembalikanFalse.- boundary()Link to this definition
Batasan geometri ini , sebagai sebuah obyek
OGRGeometrybaru.- convex_hullLink to this definition
Poligon cembung terkecil yang megnandung geometri ini, sebagai sebuah obyek
OGRGeometrybaru.- difference()Link to this definition
Mengembalikan kawasan terdiri dari perbedaan dari geometri dan lainnya, seperti obyek
OGRGeometrybaru.- intersection()Link to this definition
Mengembalikan kawasan terdiri dari persimpangan dari geometri dan lainnya, seperti obyek
OGRGeometrybaru.- sym_difference()Link to this definition
Mengembalikan kawasan terdiri dari perbedaan simetris dari geometri dan lainnya, seperti obyek
OGRGeometrybaru.- union()Link to this definition
Mengembalikan kawasan terdiri dari penggabungan dari geometri dan lainnya, seperti obyek
OGRGeometrybaru.Mengembalikan kordinat-kordinat dari titik geometri sebagai sebuah tuple, kordinat-kordinat dari baris geometri sebagai sebuah tuple dari tuple, dan sebagainya:
>>> OGRGeometry('POINT (1 2)').tuple (1.0, 2.0) >>> OGRGeometry('LINESTRING (1 2,3 4)').tuple ((1.0, 2.0), (3.0, 4.0))- coordsLink to this definition
Sebuah nama lain untuk
tuple.
- class PointLink to this definition
-
Mengembalikan kordinat X dari titik ini:
>>> OGRGeometry('POINT (1 2)').x 1.0Mengembalikan kordinat Y dari titik ini:
>>> OGRGeometry('POINT (1 2)').y 2.0Mengembalikan kordinat Z pada titik ini, atau
Nonejika titik tidak memiliki kordinat Z:>>> OGRGeometry('POINT (1 2 3)').z 3.0
- class LineStringLink to this definition
-
Mengembalikan sebuah daftar dari kordinat X dalam baris ini:
>>> OGRGeometry('LINESTRING (1 2,3 4)').x [1.0, 3.0]Mengembalikan sebuah daftar dari kordinat Y dalam baris ini:
>>> OGRGeometry('LINESTRING (1 2,3 4)').y [2.0, 4.0]Mengembalikan list dari kordinat Z pada baris ini, atau
Nonejika baris tidak memiliki kordinat Z:>>> OGRGeometry('LINESTRING (1 2 3,4 5 6)').z [3.0, 6.0]
- class PolygonLink to this definition
-
Mengembalikan cangkang atau eksterior lingkaran dari poligon ini, sebagai geometri
LinearRing.- exterior_ringLink to this definition
Sebuah nama lain untuk
shell.- centroidLink to this definition
Mengembalikan
Pointmewakili pust dari poligon ini.
- class GeometryCollectionLink to this definition
- add(geom)Link to this definition
Menambah geometri ke kumpulan geometri. Tidak dapat diterapkan pada jenis geometri lain.
OGRGeomTypeLink to this heading
- class OGRGeomType(type_input)Link to this definition
Kelas ini mengizinkan untuk gambaran dari jenis geometri OGR dalam beberapa cara:
>>> from django.contrib.gis.gdal import OGRGeomType >>> gt1 = OGRGeomType(3) # Using an integer for the type >>> gt2 = OGRGeomType('Polygon') # Using a string >>> gt3 = OGRGeomType('POLYGON') # It's case-insensitive >>> print(gt1 == 3, gt1 == 'Polygon') # Equivalence works w/non-OGRGeomType objects True TrueMengembalikan formulir string tangan-pendek dari jenis geometri OGR:
>>> gt1.name 'Polygon'Mengembalikan sejumlah kaitan pada jenis geometri OGR:
>>> gt1.num 3- djangoLink to this definition
Mengembalikan jenis bidang Django (sebuah subkelas dari GeometryField) untuk digunakan menyimpan jenis OGR ini, atau
Nonejika tidak ada jenis Django yang sesuai:>>> gt1.django 'PolygonField'
EnvelopeLink to this heading
- class Envelope(*args)Link to this definition
mewakili sebuah struktur Sampul OGR yang mengandung kordinat minimual dan maksimal X, Y untuk kotak pembatas empat persegi panjang. Penamaan dari variabel adalah cocok dengan struktur Sampul OGR C.
Nilai minimal kordinat X
Nilai maksimal kordinat X.
Nilai minimal kordinat Y.
Nilai maksimal kordinat Y.
Kordinat atas-kanan, sebagai sebuah tuple.
Kordinat kiri-bawah, sebagai sebuah tuple.
Sebuah tuple mewakili bungkus.
Sebuah string mewakili amplop ini sebagai poligon dalam bentuk WKT.
- expand_to_include(*args)Link to this definition
Coordinate System ObjectLink to this heading
SpatialReferenceLink to this heading
- class SpatialReference(srs_input)Link to this definition
Obyek acuan spasial diinisialisasikan pada
srs_inputdiberikan, yang mungkin satu dari berikut:OGC Well Known Text (WKT) (sebuah string)
Kode EPSG(integer atau string)
String PROJ.4
Sebuah string tulisan cepat untuk standar dikenal-baik (
'WGS84','WGS72','NAD27','NAD83')
Contoh:
>>> wgs84 = SpatialReference('WGS84') # shorthand string >>> wgs84 = SpatialReference(4326) # EPSG code >>> wgs84 = SpatialReference('EPSG:4326') # EPSG string >>> proj4 = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ' >>> wgs84 = SpatialReference(proj4) # PROJ.4 string >>> wgs84 = SpatialReference("""GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]]""") # OGC WKT- __getitem__(target)Link to this definition
Mengembalikan nilai dari node atribut string diberikan,
Nonejika node tidak ada. Dapat juga mengambil sebuah tuple sebagai sebuah parameter, (sasaran anak), dimana anak adalah indeks dari atriut dalam WKT. Sebagai contoh:>>> wkt = 'GEOGCS["WGS 84", DATUM["WGS_1984, ... AUTHORITY["EPSG","4326"]]') >>> srs = SpatialReference(wkt) # could also use 'WGS84', or 4326 >>> print(srs['GEOGCS']) WGS 84 >>> print(srs['DATUM']) WGS_1984 >>> print(srs['AUTHORITY']) EPSG >>> print(srs['AUTHORITY', 1]) # The authority value 4326 >>> print(srs['TOWGS84', 4]) # the fourth value in this wkt 0 >>> print(srs['UNIT|AUTHORITY']) # For the units authority, have to use the pipe symbol. EPSG >>> print(srs['UNIT|AUTHORITY', 1]) # The authority value for the units 9122- attr_value(target, index=0)Link to this definition
Nilai atribut untuk node sasaran diberikan (misalnya
'PROJCS'). Kata kunci indeks menentukan sebuah indeks dari node anak untuk kembali.- auth_name(target)Link to this definition
Mengembalikan nama wewenang untuk node sasaran string yang diberikan.
- auth_code(target)Link to this definition
Mengembalikan kode wewenang untuk node sasaran string yang diberikan.
- clone()Link to this definition
Mengembalikan kloning dari obyek acuan spasial ini.
- identify_epsg()Link to this definition
Metode ini memeriksa WKT dari
SpatialReferenceini dan akan menambahkan node-node wewenang EPSG dimana sebuah penciri EPSG dapat diterapkan.- from_esri()Link to this definition
Morphs this SpatialReference from ESRI's format to EPSG
- to_esri()Link to this definition
Morphs this SpatialReference to ESRI's format.
- validate()Link to this definition
Memeriksa untuk melihat jika acuan spasial diberikan adalah sah, jika tidak sebuah pengecualian akan dimunculkan.
- import_epsg(epsg)Link to this definition
Impor acuan spasial dari kode EPSG.
- import_proj(proj)Link to this definition
Impor acuan spasial dari string PROJ.4.
- import_user_input(user_input)Link to this definition
- import_wkt(wkt)Link to this definition
Impor acuan spasial dari WKT.
- import_xml(xml)Link to this definition
Mengimpor acuan spasial dari XML.
Mengembalikan nama dari Spatial Reference ini.
Mengembalikan SRID dari otoritas tingkat-tinggi, atau
Nonejika tidak ditentukan.- linear_nameLink to this definition
Mengambalikan nama dari satuan linear.
- linear_unitsLink to this definition
Mengembalikan nilai dari satuan linear.
- angular_nameLink to this definition
Mengembalikan nama dari satuan sudut."
- angular_unitsLink to this definition
Mengembalikan nilai dari satuan sudut.
Mengembalikan 2-tuple dari nilai satuan dan nama satuan dan akan otomatis menentukan apakah mengembalikan satuan segaris atau bersinggungan.
- ellipsoidLink to this definition
Mengembalikan sebuah tuple dari parameter ellipsoid untuk acuan spasial ini: (sumbu semimajor, sumbu semiminor, dan kebalikan terbalik).
- semi_majorLink to this definition
Mengembalikan sumbu semi major dari ellipsoid untuk acuan spasial ini.
- semi_minorLink to this definition
Mengembalikan sumbu semi minor dari ellipsoid untuk acuan spasial ini.
- inverse_flatteningLink to this definition
Mengembalikan kebalikan terbalik dari ellipsoid untuk acuan spasial ini.
- geographicLink to this definition
Mengembalikan
Truejika acuan spasial ini adalah geografis (node akar adalahGEOGCS).Mengembalikan
Truejika acuan spasial ini adalah lokal (node akar adalahLOCAL_CS).- projectedLink to this definition
Mengembalikan
Truejika acuan spasial ini adalah sistem kordinat terproyeksi (node akar adalahPROJCS).Mengembalikan perwakilan WKT dari acuan spasial ini.
- pretty_wktLink to this definition
Mengembalikan perwakilan 'pretty' dari WKT.
Mengembalikan perwakilan PROJ.4 dari acuan spasial ini.
Nama lain untuk
SpatialReference.proj.Mengembalikan perwakilan XML dari acuan spasial ini.
CoordTransformLink to this heading
- class CoordTransform(source, target)Link to this definition
Mewakili sebuah perubahan bentuk sistem kordinat. Itu diinisialisasikan dengan dua SpatialReference, mewakili sumber dan sasaran sistem kordinat, masing-masing. Obyek-obyek ini harus digunakan ketika melakukan perubahan bentuk kordinat yang sama secara berulang pada geometri berbeda:
>>> ct = CoordTransform(SpatialReference('WGS84'), SpatialReference('NAD83'))
>>> for feat in layer:
... geom = feat.geom # getting clone of feature geometry
... geom.transform(ct) # transforming
Obyek Data RasterLink to this heading
GDALRasterLink to this heading
GDALRaster is a wrapper for the GDAL raster source object that
supports reading data from a variety of GDAL-supported geospatial file
formats and data sources using a consistent interface. Each
data source is represented by a GDALRaster object which contains
one or more layers of data named bands. Each band, represented by a
GDALBand object, contains georeferenced image data. For example, an RGB
image is represented as three bands: one for red, one for green, and one for
blue.
- class GDALRaster(ds_input, write=False)Link to this definition
aPembangunan untuk
GDALRastermenerima dua parameter. Parameter pertama menentukan sumber raster, dan parameter kedua ditentukan jika raster harus dibuka dalam suasana tulis. Untuk raster baru-dibuat, parameter kedua diabaikan dan raster baru selalu dibuat dalam suasana tulis.Parameter pertama dapat mengambil tiga bentuk: string mewakili jalur berkas, dictionary dengan nilai-nilai menentukan raster baru, atau obyek byte mewakili berkas raster.
Jika masukan adalah jalur berkas, raster dibuka dari sana. Jika masukan adalah mentah dalam dictionary, parameter
width,height, dansriddiwajibkan. Jika masukan adalah obyek byte, itu akan dibuka menggunakan sistem berkas maya GDAL.Untuk gambaran rinci pada bagaimana membuat raster menggunakan masukan dictionary, lihat Membuat raster dari data. Untuk gambaran rinci pada bagaimana membuat raster-raster dalam sistem berkas maya, lihat Menggunakan Virtual Filesystem GDAL.
Contoh berikut menunjukkan bagaimana raster-raster dapat dibuat dari sumber masukan berbeda (menggunakan data contoh dari percobaan GeoDjango; lihat juga bagian Data Contoh).
>>> from django.contrib.gis.gdal import GDALRaster >>> rst = GDALRaster('/path/to/your/raster.tif', write=False) >>> rst.name '/path/to/your/raster.tif' >>> rst.width, rst.height # This file has 163 x 174 pixels (163, 174) >>> rst = GDALRaster({ # Creates an in-memory raster ... 'srid': 4326, ... 'width': 4, ... 'height': 4, ... 'datatype': 1, ... 'bands': [{ ... 'data': (2, 3), ... 'offset': (1, 1), ... 'size': (2, 2), ... 'shape': (2, 1), ... 'nodata_value': 5, ... }] ... }) >>> rst.srs.srid 4326 >>> rst.width, rst.height (4, 4) >>> rst.bands[0].data() array([[5, 5, 5, 5], [5, 2, 3, 5], [5, 2, 3, 5], [5, 5, 5, 5]], dtype=uint8) >>> rst_file = open('/path/to/your/raster.tif', 'rb') >>> rst_bytes = rst_file.read() >>> rst = GDALRaster(rst_bytes) >>> rst.is_vsi_based True >>> rst.name # Stored in a random path in the vsimem filesystem. '/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'- nameLink to this definition
Nama dari sumber yang setara pada jalur berkas masukan atau nama disediakan ketika instansiasi.
>>> GDALRaster({'width': 10, 'height': 10, 'name': 'myraster', 'srid': 4326}).name 'myraster'
- driverLink to this definition
The name of the GDAL driver used to handle the input file. For
GDALRasters created from a file, the driver type is detected automatically. The creation of rasters from scratch is an in-memory raster by default ('MEM'), but can be altered as needed. For instance, useGTifffor aGeoTifffile. For a list of file types, see also the GDAL Raster Formats list.Raster dalam-memori dibuat melalui contoh berikut:
>>> GDALRaster({'width': 10, 'height': 10, 'srid': 4326}).driver.name 'MEM'Sebuah berkas berdasarkan raster GeoTiff dibuat melalui contoh berikut:
>>> import tempfile >>> rstfile = tempfile.NamedTemporaryFile(suffix='.tif') >>> rst = GDALRaster({'driver': 'GTiff', 'name': rstfile.name, 'srid': 4326, ... 'width': 255, 'height': 255, 'nr_of_bands': 1}) >>> rst.name '/tmp/tmp7x9H4J.tif' # The exact filename will be different on your computer >>> rst.driver.name 'GTiff'
- widthLink to this definition
Lebar dari sumber dalam pixel (sumbu-X).
>>> GDALRaster({'width': 10, 'height': 20, 'srid': 4326}).width 10
- heightLink to this definition
Lebar dari sumber dalam pixel (sumbu-Y).
>>> GDALRaster({'width': 10, 'height': 20, 'srid': 4326}).height 20
- srsLink to this definition
Sistem acuan spasial dari raster, seperti instance
SpatialReference. SRS dapat dirubah dengan merubah itu keSpatialReferencelain atau menyediakan masukan apapun yang diterima oleh pembangunSpatialReference.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.srs.srid 4326 >>> rst.srs = 3086 >>> rst.srs.srid 3086
- sridLink to this definition
Spatial Reference System Identifier (SRID) dari raster. Sifat ini adalah jalan pintas untuk mendapatkan atau menyetel SRID melalui atribut
srs.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.srid 4326 >>> rst.srid = 3086 >>> rst.srid 3086 >>> rst.srs.srid # This is equivalent 3086
- geotransformLink to this definition
Matriks perubahan affine digunakan untuk pengacuan geo sumber, sebagai sebuah tuple dari enam koefisien yang memetakan kordinat pixel/baris menjadi ruang acuan geo menggunakan hubungan berikut:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)Nilai-nilai sama dapat diambil dengan mengakses sifat attr:origin (indeks 0 dan 3),
scale(indeks 1 dan 5) danskew(indeks 2 dan 4).Awalnya adalah
[0.0, 1.0, 0.0, 0.0, 0.0, -1.0].>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.geotransform [0.0, 1.0, 0.0, 0.0, 0.0, -1.0]
- originLink to this definition
Kordinat-kordinat dari kiri atas asli dari raster dalam sistem acuan spasial dari sumber, sebagai sebuah obyek titik dengan anggota
xdny.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.origin [0.0, 0.0] >>> rst.origin.x = 1 >>> rst.origin [1.0, 0.0]
- scaleLink to this definition
Pixel width and height used for georeferencing the raster, as a point object with
xandymembers. Seegeotransformfor more information.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.scale [1.0, -1.0] >>> rst.scale.x = 2 >>> rst.scale [2.0, -1.0]
- skewLink to this definition
Koefisien tidak simetris digunakan untuk pengacuan geo raster, sebagai sebuah obyek titik dengan anggota
xdany. Dalam kasus gambar ke utara, koefisien ini keduanya0.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.skew [0.0, 0.0] >>> rst.skew.x = 3 >>> rst.skew [3.0, 0.0]
- extentLink to this definition
Perpanjang (nilai-nilai batasan) dari sumber raster, sebagai sebuah 4-tuple
(xmin, ymin, xmax, ymax)dalam sistem acuan spasial dari sumber.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.extent (0.0, -20.0, 10.0, 0.0) >>> rst.origin.x = 100 >>> rst.extent (100.0, -20.0, 110.0, 0.0)
- bandsLink to this definition
Daftar pita dari sumber, seperti contoh
GDALBand.>>> rst = GDALRaster({"width": 1, "height": 2, 'srid': 4326, ... "bands": [{"data": [0, 1]}, {"data": [2, 3]}]}) >>> len(rst.bands) 2 >>> rst.bands[1].data() array([[ 2., 3.]], dtype=float32)
- warp(ds_input, resampling='NearestNeighbour', max_error=0.0)Link to this definition
Mengembalikan versi melengkung dari raster ini.
Parameter pelengkungan dapat ditentukan melalui argumen
ds_input. Penggunaands_inputsejalan pada argumen berhubungan dari pembangun kelas. Itu adalah sebuah dictionary dengan karakteristik dari sasaran raster. Nilai-nilai kunci dictionary yang diizinkan adalah lebar, tinggi, SRID, asli, skala, kemiringan, jenis data, driver, dan nama (nama berkas).Secara awalan, fungsi melengkung menjaga kebanyakan parameter setara pada nilai-nilai dari raster sumber asli, jadi hanya parameter yang harus dirubah butuh ditentukan. Catat bahwa ini termasuk driver, jadi untuk raster berdasarkan berkas fungsi melengkung akan membuat raster baru pada cakram.
Parameter yang hanya disetel berbeda dari raster sumber adalah nama. Nilai awalan dari nama raster adalah nama dari sumber raster ditambahkan dengan
'_copy' + source_driver_name. Untuk raster berdasarkan-berkas itu dianjurkan untuk menyediakan jalur berkas dari raster sasaran.Algoritma contoh ulang digunakan untuk melengkungkan dapat ditentukan dengan argumen
resampling. Awalan adalahNearestNeighbor, dan nilai lainnya diizinkan adalahBilinear,Cubic,CubicSpline,Lanczos,Average, danMode.Argumen
max_errordapat digunakan untuk menentukan kesalahan maksimal diukur dalam masukan pixel yang diizinkan dalam mendekati perubahan. Awalan adalah 0.0 untuk perhitungan tepat.Untuk pengguna akrab dengan
GDAL, fungsi ini mempunyai fungsionalitas mirip pada kegunaan baris-perintahgdalwarp.Sebagai contoh, fungsi pembungkus dapat digunakan untuk mengumpulkan raster untuk menggandakan dari skala pixel aslinya.
>>> rst = GDALRaster({ ... "width": 6, "height": 6, "srid": 3086, ... "origin": [500000, 400000], ... "scale": [100, -100], ... "bands": [{"data": range(36), "nodata_value": 99}] ... }) >>> target = rst.warp({"scale": [200, -200], "width": 3, "height": 3}) >>> target.bands[0].data() array([[ 7., 9., 11.], [ 19., 21., 23.], [ 31., 33., 35.]], dtype=float32)
- transform(srid, driver=None, name=None, resampling='NearestNeighbour', max_error=0.0)Link to this definition
Mengembalikan versi dirubah dari raster ini dengan SRID ditentukan.
Fungsi ini merubah raster saat ini mejadi sistem acuan spasial baru yang dapat ditentukan dengan sebah
srid. Itu menghitung batasan dan skala dari raster saat ini dalam sistem acuan spasial baru dan memlengkungkan raster menggunakan fungsiwarp.Secara awalan, driver dari sumber raster digunakan dan nama dari raster adalah nama asli ditambahkan dengan
'_copy' + source_driver_name. Sebuah driver berbeda dapat ditentukan dengan argumendriverdanname.Algoritma contoh ulang adalah
NearestNeighbourtetapi dapat dirubah menggunakan argumenresmpling. Maksimal kesalahan awalan diizinkan untuk contoh ulang adalah 0.0 dan dapat dirubah menggunakan argumenmax_error. Obrolkan dokumenwarpuntuk rincian pada argumen-argumen tersebut.>>> rst = GDALRaster({ ... "width": 6, "height": 6, "srid": 3086, ... "origin": [500000, 400000], ... "scale": [100, -100], ... "bands": [{"data": range(36), "nodata_value": 99}] ... }) >>> target = rst.transform(4326) >>> target.origin [-82.98492744885776, 27.601924753080144]
- infoLink to this definition
Mengembalikan string dengan ringkasan dari raster. Ini setara pada kegunaan baris perintah gdalinfo.
- metadataLink to this definition
Metadata dari raster ini, diwakili sebagai dictionary bersarang. Kunci tingkat-pertama adalah ranah metadata. Tingkat-kedua mengandung barang metadata dan nilai dari setiap ranah.
Untuk menyetel atau memperbaharui barang metadata, lewatkan barang metadata berhubungan ke metode menggunakan struktur bersarang digambarkan diatas. Hanya kunci-kunci yang dalam dictionary ditentukan adalah diperbaharui; sisa dari metadata tetap tidak berubah.
Untuk memindahkan barang metadata, gunakan
Nonesebagai nilai metadata.>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326}) >>> rst.metadata {} >>> rst.metadata = {'DEFAULT': {'OWNER': 'Django', 'VERSION': '1.0'}} >>> rst.metadata {'DEFAULT': {'OWNER': 'Django', 'VERSION': '1.0'}} >>> rst.metadata = {'DEFAULT': {'OWNER': None, 'VERSION': '2.0'}} >>> rst.metadata {'DEFAULT': {'VERSION': '2.0'}}
- vsi_bufferLink to this definition
Sebuah
bytesperwakilan dari raster ini. MengembalikanNoneuntuk raster-raster yang tidak disimpan dalam sistem berkas maya GDAL.
- is_vsi_basedLink to this definition
Sebuah boolean menunjukkan jika raster ini disimpan dalam sistem berkas maya GDAL.
GDALBandLink to this heading
- class GDALBandLink to this definition
Instance-instance
GDALBandtidak dibuat tegas, tetapi daripada mengambil dari obyekGDALRaster, melalui atributbandsnya. GDALBand mengandung nilai pixel sebenarnya dari raster.- descriptionLink to this definition
Nama dari gambaran dari pita, jika ada.
- widthLink to this definition
Lebar dari pita dalam pixel (sumbu-X).
- heightLink to this definition
Lebar dari pita dalam pixel (sumbu-Y).
- pixel_countLink to this definition
Jumlah angka dari pixel dalam pita ini. Adalah setara pada
width * height.
- statistics(refresh=False, approximate=False)Link to this definition
Menghitung statistik pada nilai pixel dari pita ini. Nilai kembalian adalah sebuah tuple diikuti struktur berikut:
(minimum, maximum, mean, standard deviation).Jika argumen
approximatedisetel menjadiTrue, statistik mungkin dihitung berdasarkan pada tinjauan atau subset dari ubin-ubin gambar.Jika argumen
refreshdisetel menjadiTrue, statistik akan dihitung dari data langsung, dan cache akan diperbaharui dengan hasil.Jika nilai cache tetap ditemukan, nilai itu dikembalikan. Untuk bentuk raster menggunakan layanan Persistent Auxiliary Metadata (PAM), statistik mungkin di cache dalam berkas bantu. Dalam beberapa kasus metadata ini mungkin diluar sinkronisasi dengan nilai pixel atau menyebabkan nilai dari panggilan sebelumnya dikembalikan yang tidak mencerminkan nilai dari argumen
approximate. Dalam kasus itu, gunakan argumenresfreshuntuk mendapatkan nilai pembaharuan dan menyimpan mereka dalam cache.Untuk pita kosong (dimana semua nilai pixel adalah "no data"), semua statistik dikembalikan sebagai
None.Statistik dapat juga diambil langsung dengan mengakses milik
min,max,mean, danstd.
- minLink to this definition
Nilai pixel minimal dari pita (tidak termasuk nilai "no data").
- maxLink to this definition
Nilai pixel maksimal dari pita (tidak termasuk nilai "no data").
- meanLink to this definition
Arti dari semua nilai-nilai pixel dari pita (tidak termasuk nilai "no data").
- stdLink to this definition
Penyimpangan standar dari semua nilai pixel dari pita (tidak termasuk nilai "no data").
- nodata_valueLink to this definition
Nilai "no data" untuk pita umumnya penanda khusus nilai digunakan untuk menandai pixel yang bukan data sah. Pixel tersebut harus umtumnya jangan ditampilkan, ataupun membantu menganalisa tindakan-tindakan.
Untuk menghapus nilai "no data" yang ada, setel sifat ini menjadi
None(membutuhkan GDAL ≥ 2.1).
- datatype(as_string=False)Link to this definition
Jenis data terkandung dalam pita, sebagai ketetapan integer diantara 0 (Tidak diketahui) dan 11. Jika
as_stringadalahTrue, jenis data dikembalikan sebagai string dengan nilai-nilai kemungkinan sebagai berikut:GDT_Unknown,GDT_Byte,GDT_UInt16,GDT_Int16,GDT_UInt32,GDT_Int32,GDT_Float32,GDT_Float64,GDT_CInt16,GDT_CInt32,GDT_CFloat32, danGDT_CFloat64.
- color_interp(as_string=False)Link to this definition
Tafsiran warna untuk pita, sebagai integer diantara 0 dan 16. Jika
as_stringadlahTrue, jenis data dikembalikan sebagai string dengan nilai kemungkinan berikut:GCI_Undefined,GCI_GrayIndex,GCI_PaletteIndex,GCI_RedBand,GCI_GreenBand,GCI_BlueBand,GCI_AlphaBand,GCI_HueBand,GCI_SaturationBand,GCI_LightnessBand,GCI_CyanBand,GCI_MagentaBand,GCI_YellowBand,GCI_BlackBand,GCI_YCbCr_YBand,GCI_YCbCr_CbBand, danGCI_YCbCr_CrBand.GCI_YCbCr_CrBandjuga mewakiliGCI_Maxkarena keduanya berhubungan pada integer 16, tetapi hanyaGCI_YCbCr_CrBanddikembalikan sebagai string.
- data(data=None, offset=None, size=None, shape=None)Link to this definition
Pengakses ke nilai-nilai pexel dari
GDALBand. Mengembalikan larik data lengkap jika tidak ada parameter disediakan. Sebuah subset dari larik pixel dapat diminta dengan menentukan sebuah penyeimbang dan ukuran blok sebagai tuple.Jika NumPy tersedia, data dikembalikan sebagai larik NumPy. Untuk alasan penampilan, sangat dianjurkan menggunakan NumPy.
Data ditulis pada
GDALBandjika parameterdatadisediakan. Masukan dapat berupa satu dari jenis-jenis berikut - string paket, buffer, list, senarai, dan senarai NumPy. Jumlah barang-barang dalam masukan harus biasanya menanggapi pada jumlah angka dari pixel dalam pita, atau pada angka pixel untuk blok khusus dari nilai pixel jika parameteroffsetdansizedisediakan.Jika sejumlah barang dalam masukan berbeda dari ssaran blok pixel, parameter
shapeharus ditentukan. Shape adalah tuple yang menentukan lebar dan tinggi dari masukan data dalam pixel. Data kemudian direplikasi untuk memperbaharui nilai dari blok terpilih. Ini sangat berguna untuk mengisi seluruh pita dengan nilai tunggal, sebagai contoh.Sebagai contoh:
>>> rst = GDALRaster({'width': 4, 'height': 4, 'srid': 4326, 'datatype': 1, 'nr_of_bands': 1}) >>> bnd = rst.bands[0] >>> bnd.data(range(16)) >>> bnd.data() array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]], dtype=int8) >>> bnd.data(offset=(1, 1), size=(2, 2)) array([[ 5, 6], [ 9, 10]], dtype=int8) >>> bnd.data(data=[-1, -2, -3, -4], offset=(1, 1), size=(2, 2)) >>> bnd.data() array([[ 0, 1, 2, 3], [ 4, -1, -2, 7], [ 8, -3, -4, 11], [12, 13, 14, 15]], dtype=int8) >>> bnd.data(data='\x9d\xa8\xb3\xbe', offset=(1, 1), size=(2, 2)) >>> bnd.data() array([[ 0, 1, 2, 3], [ 4, -99, -88, 7], [ 8, -77, -66, 11], [ 12, 13, 14, 15]], dtype=int8) >>> bnd.data([1], shape=(1, 1)) >>> bnd.data() array([[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], dtype=uint8) >>> bnd.data(range(4), shape=(1, 4)) array([[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], dtype=uint8)
- metadataLink to this definition
Metadata dari pita ini. Kegunaannya mirip pada
GDALRaster.metadata.
Membuat raster dari dataLink to this heading
Bagian ini menggambarkan bagaimana membuat raster dari goresan menggunakan parameter ds_input.
Raster baru dibuat ketika dict dilewatkan pada pembangun GDALRaster. Dictionary mengandung menentukan parameter dari raster baru, seperti aslinnya, ukuran, atau sistem acuan spasial. Dictionary dapat juga mengandung data pixel dan informasi mengenai bentuk dari raster baru. Raster dihasilkan dapat karena itu berupa berdasarkan-berkas atau berdasarkan-memori, tergantung pada driver yang ditentukan.
Tidak ada standar untuk menggambarkan data raster dalam dictionary atau rasa JSON. Pengertian dari masukan dictionary pada kelas GDALRaster adalah karena itu khusus pada Django. Itu terinspirasi oleh bentuk geojson, tetapi standar geojson saat ini terbatas pada bentuk vektor.
Contoh-contoh dari menggunakan kunci berbeda ketika membuat raster dapat ditemukan dalam dokumentasi dari atribut berhubungan dan metode-metode dari kelas-kelas GDALRaster dan GDALBand.
Kamus ds_inputLink to this heading
Hanya sedikit kunci dibutuhkan dalam dictionary ds_input untuk membuat raster: width, height, dan srid. Semua parameter lain memiliki nilai awalan (lihat tabel dibawah). Daftar dari kunci yang dapat dilewatkan dalam dictionary ds_input sangat dekat terkait tetapi bukan mirip pada sifat GDALRaster. Banyak dari parameter dipetakan secara langsung ke sifat tersebut; lainnya digambarkan dibawah.
Tabel berikut menggambarkan semua kunci yang dapat disetel dalam dictionary ds_input.
Kunci |
Awalan |
Penggunaan |
|---|---|---|
|
diwajibkan |
Dipetakan ke atribut |
|
diwajibkan |
Dipetakan ke atribut |
|
diwajibkan |
Dipetakan ke atribut |
|
|
Dipetakan ke atribut |
|
|
Lihat dibawah |
|
|
Dipetakan ke atribut |
|
|
Dipetakan ke atribut |
|
|
Dipetakan ke atribut |
|
|
Lihat dibawah |
|
|
Lihat dibawah |
|
|
Lihat dibawah |
|
|
Lihat dibawah |
- name
Strung mewakili nama dari raster. ketika membuat raster berdasarkan-berkas, parameter ini harus berupa jalur berkas untuk raster baru. jika nama dimulai dengan
/vsimem/, raster dibuat dalam sistem berkas maya GDAL.
- datatype
Integer mewakili jenis data untuk semua pita. Awalan pada
6(Float32). Semua pita dari raster baru diwajibkan memiliki jenis data sama. Pemetaan nilai adalah:Nilai
Jenis Piksel GDAL
Deskripsi
1
GDT_Byte
Delapan bit integer tidak bertanda
2
GDT_UInt16
Enam belas bit integer tidak bertanda
3
GDT_Int16
Enam belas bit integer bertanda
4
GDT_UInt32
Tiga-puluh-dua bit integer tidak bertanda
5
GDT_Int32
Tiga-puluh-dua bit integer bertanda
6
GDT_Float32
Tiga-puluh-dua bit floating point
7
GDT_Float64
Enam-puluh bit floating point
- nr_of_bands
Integer mewakilkan angka dari pita dari raster. Sebuah raster dapat dibuat tanpa melewati data pita ketika pembuatan. Jika angka dari pita tidak ditentukan, itu otomatis dihitung dari panjang dari masukan
band. Angka dari pita tidak dapat dirubah setelah pembuatan.
- bands
Sebuah list dari dictionary
band_inputdengan data masukan pita. Indeks hasil pita adalah sama seperti dalam list yang disediakan. Pengertian dari dictionary masukan pita diberikan dibawah. Jika data pita tidak disediakan, nilai pita raster diinstansiasikan sebagai sebuah larik nol dan nilai "no data" disetel menjadiNone.
- papsz_options
Sebuah dictionary dengan pilihan pembuatan raster. Pasangan kunci-nilai dari masukan dictionary dilewatkan ke driver pada pembuatan dari raster.
Pilihan-pilihan tersedia adalah driver-khusus dan digambarkan dalam dokumentasi dari setiap driver.
Nilai-nilai dalam dictianry bukan sensitif-kasus dan otomatis dirubah ke bentuk string benar ketika pembuatan.
Contoh berikut menggunakan beberapa pilihan tersedia untuk GTiff driver. hasil dipampatkan ditandai raster byte dengan skema ubin internal. Ubin-ubin internal mempunyai ukuran blok dari 23 byte oleh 23:
>>> GDALRaster({ ... 'driver': 'GTiff', ... 'name': '/path/to/new/file.tif', ... 'srid': 4326, ... 'width': 255, ... 'height': 255, ... 'nr_of_bands': 1, ... 'papsz_options': { ... 'compress': 'packbits', ... 'pixeltype': 'signedbyte', ... 'tiled': 'yes', ... 'blockxsize': 23, ... 'blockysize': 23, ... } ... })
Kamus band_inputLink to this heading
Kunci bands dalam dictionary ds_input adalah daftar dari dictionary band_input. Setiap dictionary band_input dapat mengandung nilai-nilai pixel dan nilai "no data" untuk disetel pada pita dari raster baru. Larik data dapat memiliki ukuran penuh dari raster baru atau lebih kecil. Untuk larik yang paling kecil dari raster penuh, Kunci-kunci size, shape, dan offset mengendalikan nilai pixel. Kunci-kunci berhubungan dilewatkan ke metode data(). Kegunaan mereka sama seperti mengatur data pita dengan metode itu. Tabel berikut menggambarkan kunci-kunci yang dapat digunakan.
Menggunakan Virtual Filesystem GDALLink to this heading
GDAL mempunyai berkas sistem berdasarkan-memori dalam, yang mengizinkan memberlakukan blok-blok dari memori sebagai berkas. Itu dapat digunakan untuk membaca dan menulis obyek GDALRaster pada dan dari penyangga berkas biner.
Ini berguna dalam konteks jaringan dimana raster-raster mungkin diambil sebagai penyangga dari penyimpanan terpencil atau dikembalikan dari sebuah tampilan tanpa sedang ditulis ke cakram.
Obyek-obyek GDALRaster dibuat dalam sistem berkas maya ketika sebuah obyek bytes disediakan sebagai masukan, atau ketika jalur berkas dimulai dengan /vsimem/.
Masukan disediakan sebagai bytes harus menjadi perwakilan biner penuh dari berkas. Sebagai contoh:
# Read a raster as a file object from a remote source.
>>> from urllib.request import urlopen
>>> dat = urlopen('http://example.com/raster.tif').read()
# Instantiate a raster from the bytes object.
>>> rst = GDALRaster(dat)
# The name starts with /vsimem/, indicating that the raster lives in the
# virtual filesystem.
>>> rst.name
'/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'
Untuk membuat raster berdasarkan-berkas maya dari goresan, gunakan perwakilan dictionary ds_input dan sediakan argumen name yang dimulai dengan /vsimem/ (untuk rincian dari perwakilan dictionary, lihat Membuat raster dari data). Untuk raster berdasarkan-berkas maya, atribut vsi_buffer mengembalikan perwakilan bytes dari raster.
Ini adalah bagaimana membuat raster dan mengembalikan itu sebaagi berkas dalam sebuah HttpResponse:
>>> from django.http import HttpResponse
>>> rst = GDALRaster({
... 'name': '/vsimem/temporarymemfile',
... 'driver': 'tif',
... 'width': 6, 'height': 6, 'srid': 3086,
... 'origin': [500000, 400000],
... 'scale': [100, -100],
... 'bands': [{'data': range(36), 'nodata_value': 99}]
... })
>>> HttpResponse(rast.vsi_buffer, 'image/tiff')
PengaturanLink to this heading
GDAL_LIBRARY_PATHLink to this heading
Sebuah string nenentukan tempat dari pustaka GDAL. Khususnya, pengaturan ini hanya digunakan jika pustaka GDAL adalah dalam tempat bukan-standar (misalnya, /home/john/lib/libgdal.so).
PengecualianLink to this heading
- exception GDALExceptionLink to this definition
Pengecualian GDAL dasar, menunjukkan kesalahan terkait-GDAL.
- exception SRSExceptionLink to this definition
Sebuah pengecualian dimunculkan ketika kesalahan muncul ketika membangun atau menggunakan obyek sistem acuan spasial.