Django 2.1

GDAL API




django

GDAL API

GDAL डेटा एब्स्ट्रक्शन लाइब्रेरी के लिए खड़ा है, और जीआईएस डेटा कार्यक्षमता का एक सत्य "स्विस सेना चाकू" है। GDAL का एक उपसमूह OGR सिंपल फीचर्स लाइब्रेरी है, जो विभिन्न प्रकार के मानक प्रारूपों में वेक्टर भौगोलिक डेटा को पढ़ने और लिखने में माहिर है।

GeoDjango OGR की कुछ क्षमताओं के लिए एक उच्च-स्तरीय पायथन इंटरफ़ेस प्रदान करता है, जिसमें वेक्टर स्थानिक डेटा के पढ़ने और समन्वय में बदलाव और GDAL की विशेषताओं के लिए न्यूनतम समर्थन के साथ raster (छवि) डेटा शामिल है।

ध्यान दें

हालाँकि मॉड्यूल का नाम gdal , लेकिन जियोडजैंगो इस समय केवल OGR और GDAL के रेखापुंज सुविधाओं की कुछ क्षमताओं का समर्थन करता है।

अवलोकन

नमूना डेटा

यहाँ वर्णित GDAL / OGR उपकरण आपके भू-स्थानिक डेटा में पढ़ने में आपकी मदद करने के लिए डिज़ाइन किए गए हैं, उनमें से अधिकांश के लिए उपयोगी होने के लिए आपके पास काम करने के लिए कुछ डेटा होना चाहिए। यदि आप शुरू कर रहे हैं और आपके पास अभी तक उपयोग करने के लिए स्वयं का कोई डेटा नहीं है, तो जियोडजंगो परीक्षणों में कई सरल डेटा सेट होते हैं जिन्हें आप परीक्षण के लिए उपयोग कर सकते हैं। आप उन्हें यहाँ डाउनलोड कर सकते हैं:

$ 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

वेक्टर डेटा स्रोत ऑब्जेक्ट

DataSource

DataSource OGR डेटा स्रोत ऑब्जेक्ट के लिए एक आवरण है जो एक सरल, सुसंगत इंटरफ़ेस का उपयोग करके OGR समर्थित जियोस्पेशियल फ़ाइल स्वरूपों और डेटा स्रोतों की एक किस्म से डेटा पढ़ने का समर्थन करता है। प्रत्येक डेटा स्रोत को डेटा स्रोत द्वारा दर्शाया जाता है जिसमें डेटा की एक या अधिक परतें होती हैं। Layer ऑब्जेक्ट द्वारा दर्शाए गए प्रत्येक Layer में कुछ संख्या में भौगोलिक विशेषताएं ( Feature ), उस लेयर में मौजूद सुविधाओं के प्रकार (उदाहरण अंक, बहुभुज आदि) के साथ-साथ किसी भी अतिरिक्त फ़ील्ड के नाम और प्रकार शामिल हैं। ( Field ) डेटा जो उस परत में प्रत्येक सुविधा से जुड़ा हो सकता है।

class DataSource(ds_input, encoding='utf-8')

DataSource लिए निर्माता को केवल एक पैरामीटर की आवश्यकता होती है: उस फ़ाइल का पथ जिसे आप पढ़ना चाहते हैं। हालाँकि, OGR डेटाबेस सहित कई और अधिक जटिल डेटा स्रोतों का भी समर्थन करता है, जिन्हें एक पथ के बजाय एक विशेष नाम स्ट्रिंग को पास करके एक्सेस किया जा सकता है। अधिक जानकारी के लिए, OGR वेक्टर प्रारूप दस्तावेज़ देखें। DataSource उदाहरण की name गुण उस अंतर्निहित डेटा स्रोत का OGR नाम देता है जिसका वह उपयोग कर रहा है।

वैकल्पिक encoding पैरामीटर आपको स्रोत में स्ट्रिंग के गैर-मानक एन्कोडिंग को निर्दिष्ट करने की अनुमति देता है। यह आम तौर पर तब उपयोगी होता है जब आप फ़ील्ड मानों को पढ़ते हुए DjangoUnicodeDecodeError अपवाद प्राप्त करते हैं।

एक बार जब आप अपना डेटा layer_count हैं, तो आप len() फ़ंक्शन का उपयोग करके layer_count प्रॉपर्टी, या (समतुल्य रूप से) तक पहुँचकर डेटा की कितनी परतें देख सकते हैं। डेटा की परतों तक पहुँचने की जानकारी के लिए, अगला भाग देखें:

>>> 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_count

डेटा स्रोत में परतों की संख्या लौटाता है।

name

डेटा स्रोत का नाम लौटाता है।

Layer

class Layer

Layer एक DataSource ऑब्जेक्ट में डेटा की एक परत के लिए एक आवरण है। आप कभी भी सीधे Layer ऑब्जेक्ट नहीं बनाते हैं। इसके बजाय, आप उन्हें DataSource ऑब्जेक्ट से पुनर्प्राप्त करते हैं, जो अनिवार्य रूप से Layer ऑब्जेक्ट्स का एक मानक पायथन कंटेनर है। उदाहरण के लिए, आप एक विशिष्ट परत को इसके सूचकांक (जैसे ds[0] पहली परत तक पहुँचने के लिए) तक पहुँचा सकते हैं, या आप कंटेनर में सभी परतों के for लूप के for पुनरावृति कर सकते हैं। Layer ही ज्यामितीय विशेषताओं के लिए एक कंटेनर के रूप में कार्य करती है।

आमतौर पर, दी गई परत की सभी विशेषताओं में समान ज्यामिति होती है। एक परत की geom_type संपत्ति एक OGRGeomType है जो सुविधा प्रकार की पहचान करती है। हम डेटा DataSource में प्रत्येक परत के बारे में कुछ बुनियादी जानकारी को प्रिंट करने के लिए इसका उपयोग कर सकते हैं:

>>> for layer in ds:
...     print('Layer "%s": %i %ss' % (layer.name, len(layer), layer.geom_type.name))
...
Layer "cities": 3 Points

उदाहरण आउटपुट शहरों के डेटा स्रोत से है, जो ऊपर लोड किया गया है, जिसमें स्पष्ट रूप से एक परत शामिल है, जिसे "cities" कहा जाता है, जिसमें तीन बिंदु विशेषताएं हैं। सादगी के लिए, नीचे दिए गए उदाहरण मानते हैं कि आपने उस परत को चर layer में संग्रहीत किया है:

>>> layer = ds[0]
name

डेटा स्रोत में इस परत का नाम देता है।

>>> layer.name
'cities'
num_feat

परत में सुविधाओं की संख्या लौटाता है। len(layer) समान len(layer) :

>>> layer.num_feat
3
geom_type

OGRGeomType ऑब्जेक्ट के रूप में, ज्यामिति प्रकार की परत OGRGeomType है:

>>> layer.geom_type.name
'Point'
num_fields

परत में फ़ील्ड्स की संख्या लौटाता है, अर्थात परत में प्रत्येक विशेषता से जुड़े डेटा फ़ील्ड्स की संख्या:

>>> layer.num_fields
4
fields

इस परत के प्रत्येक क्षेत्र के नामों की सूची लौटाता है:

>>> layer.fields
['Name', 'Population', 'Density', 'Created']

इस परत के प्रत्येक फ़ील्ड के डेटा प्रकारों की सूची लौटाता है। ये Field उपवर्ग हैं, जिन पर नीचे चर्चा की गई है:

>>> [ft.__name__ for ft in layer.field_types]
['OFTString', 'OFTReal', 'OFTReal', 'OFTDate']
field_widths

इस क्षेत्र के प्रत्येक क्षेत्र के लिए अधिकतम फ़ील्ड चौड़ाई की सूची लौटाता है:

>>> layer.field_widths
[80, 11, 24, 10]
field_precisions

इस परत में प्रत्येक क्षेत्र के लिए संख्यात्मक पूर्वसूचक की सूची लौटाता है। यह गैर-संख्यात्मक क्षेत्रों के लिए अर्थहीन (और शून्य पर सेट) है:

>>> layer.field_precisions
[0, 0, 15, 0]
extent

एक परत वस्तु के रूप में, इस परत की स्थानिक सीमा Envelope है:

>>> layer.extent.tuple
(-104.609252, 29.763374, -95.23506, 38.971823)
srs

वह संपत्ति जो इस परत से जुड़ी SpatialReference को SpatialReference :

>>> print(layer.srs)
GEOGCS["GCS_WGS_1984",
    DATUM["WGS_1984",
        SPHEROID["WGS_1984",6378137,298.257223563]],
    PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]]

यदि Layer पास इससे जुड़ी कोई स्थानिक संदर्भ जानकारी None है, तो None भी वापस None जाता है।

spatial_filter

संपत्ति जो इस परत के लिए एक स्थानिक फ़िल्टर को पुनः प्राप्त करने या सेट करने के लिए उपयोग की जा सकती है। एक स्थानिक फिल्टर केवल OGRGeometry उदाहरण, 4-ट्यूपल सीमा, या None साथ सेट किया जा सकता है। जब None अलावा किसी अन्य चीज़ के साथ सेट किया जाता है, तो केवल यह विशेषता होती है कि फ़िल्टर को इंटरसेक्ट करते समय परत के ऊपर पुनरावृत्ति करने पर वापस आ जाएगी

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

एक विधि जो परत में प्रत्येक सुविधा के लिए दिए गए फ़ील्ड के मानों की सूची लौटाती है:

>>> layer.get_fields('Name')
['Pueblo', 'Lawrence', 'Houston']
get_geoms(geos=False)

एक विधि जो परत में प्रत्येक सुविधा की ज्यामिति से युक्त सूची लौटाती है। यदि वैकल्पिक तर्क geos True में सेट हो जाता है तो जियोमेट्री को GEOSGeometry ऑब्जेक्ट में बदल दिया GEOSGeometry है। अन्यथा, उन्हें OGRGeometry ऑब्जेक्ट के रूप में लौटाया जाता है:

>>> [pt.tuple for pt in layer.get_geoms()]
[(-104.609252, 38.255001), (-95.23506, 38.971823), (-95.363151, 29.763374)]
test_capability(capability)

एक बूलियन को इंगित करता है कि क्या यह परत दी गई क्षमता (एक स्ट्रिंग) का समर्थन करती है। मान्य क्षमता स्ट्रिंग्स के उदाहरणों में शामिल हैं: 'RandomRead' 'RandomWrite' , 'FastSpatialFilter' 'RandomWrite' , 'FastSpatialFilter' , 'FastFeatureCount' , 'FastGetExtent' , 'CreateField' 'FastGetExtent' , 'FastGetExtent' 'CreateField' , 'Transactions' , 'DeleteFeature' , और 'FastSetNextByIndex'

Feature

class Feature

Feature ओजीआर Feature लपेटता है। आप कभी भी Feature ऑब्जेक्ट को सीधे नहीं बनाते हैं। इसके बजाय, आप उन्हें किसी Layer ऑब्जेक्ट से पुनर्प्राप्त करते हैं। प्रत्येक सुविधा में एक ज्यामिति और अतिरिक्त गुणों वाले फ़ील्ड्स का एक सेट होता है। किसी क्षेत्र की ज्यामिति उसकी OGRGeometry संपत्ति के माध्यम से सुलभ होती है, जो OGRGeometry ऑब्जेक्ट OGRGeometry है। एक Feature अपने क्षेत्रों के लिए एक मानक पायथन कंटेनर की तरह व्यवहार करता है, जिसे वह Field ऑब्जेक्ट्स के रूप में लौटाता है: आप सीधे अपने सूचकांक या नाम से किसी फ़ील्ड तक पहुँच सकते हैं, या आप फ़ीचर के फ़ील्ड्स पर जैसे कि एक लूप के for पुनरावृति कर सकते हैं।

geom

OGRGeometry ऑब्जेक्ट के रूप में इस सुविधा के लिए ज्यामिति लौटाता है:

>>> city.geom.tuple
(-104.609252, 38.255001)
get

एक विधि जो इस सुविधा के लिए दिए गए फ़ील्ड (नाम द्वारा निर्दिष्ट) का मान लौटाती है, Field आवरण ऑब्जेक्ट नहीं:

>>> city.get('Population')
102121
geom_type

इस सुविधा के लिए ज्यामिति के प्रकार को OGRGeomType ऑब्जेक्ट के रूप में OGRGeomType है। यह दी गई परत में सभी सुविधाओं के लिए समान होगा और यह Layer जिस वस्तु से आई है, वह geom_type संपत्ति के बराबर है।

num_fields

सुविधा से जुड़े डेटा के क्षेत्रों की संख्या लौटाता है। यह किसी दी गई परत में सभी विशेषताओं के लिए समान होगा और यह Layer वस्तु के Layer.num_fields संपत्ति के बराबर है जो इस सुविधा से आई है।

fields

सुविधा से जुड़े डेटा के क्षेत्रों के नामों की सूची लौटाता है। यह दी गई परत में सभी विशेषताओं के लिए समान होगा और Layer ऑब्जेक्ट के बराबर है। यह फीचर उस Layer ऑब्जेक्ट से आया है, जो फीचर से आया है।

fid

परत के भीतर सुविधा पहचानकर्ता लौटाता है:

>>> city.fid
0
layer_name

उस Layer का नाम लौटाता है जो सुविधा से आई है। यह दी गई परत में सभी विशेषताओं के लिए समान होगा:

>>> city.layer_name
'cities'
index

एक विधि जो दिए गए फ़ील्ड नाम का सूचकांक लौटाती है। यह दी गई परत में सभी विशेषताओं के लिए समान होगा:

>>> city.index('Population')
1

Field

class Field
name

इस क्षेत्र का नाम लौटाता है:

>>> city['Name'].name
'Name'
type

इस क्षेत्र के OGR प्रकार को पूर्णांक के रूप में लौटाता है। FIELD_CLASSES Field उपवर्गों पर इन मानों को मैप करता है:

>>> city['Density'].type
2
type_name

इस फ़ील्ड के डेटा प्रकार के नाम के साथ एक स्ट्रिंग लौटाता है:

>>> city['Name'].type_name
'String'
value

इस फ़ील्ड का मान लौटाता है। Field वर्ग स्वयं मान को एक स्ट्रिंग के रूप में लौटाता है, लेकिन प्रत्येक उपवर्ग सबसे उपयुक्त रूप में मान लौटाता है:

>>> city['Population'].value
102121
width

इस क्षेत्र की चौड़ाई लौटाता है:

>>> city['Name'].width
80
precision

इस क्षेत्र की संख्यात्मक परिशुद्धता लौटाता है। यह गैर-संख्यात्मक क्षेत्रों के लिए अर्थहीन (और शून्य पर सेट) है:

>>> city['Density'].precision
15
as_double()

एक डबल (फ्लोट) के रूप में फ़ील्ड का मान लौटाता है:

>>> city['Density'].as_double()
874.7
as_int()

पूर्णांक के रूप में फ़ील्ड का मान लौटाता है:

>>> city['Population'].as_int()
102121
as_string()

फ़ील्ड के मान को स्ट्रिंग के रूप में लौटाता है:

>>> city['Name'].as_string()
'Pueblo'
as_datetime()

दिनांक और समय घटकों के टपल के रूप में फ़ील्ड का मान लौटाता है:

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

Driver

class Driver(dr_input)

Driver वर्ग का उपयोग आंतरिक रूप से OGR डेटा स्रोत ड्राइवर को लपेटने के लिए किया जाता है।

driver_count

वर्तमान में पंजीकृत OGR वेक्टर ड्राइवरों की संख्या लौटाता है।

OGR ज्यामितीय

OGRGeometry

OGRGeometry ऑब्जेक्ट OGRGeometry ऑब्जेक्ट के साथ समान कार्यक्षमता साझा GEOSGeometry हैं और OGR के आंतरिक ज्यामिति प्रतिनिधित्व के आसपास पतले रैपर होते हैं। इस प्रकार, वे डेटा DataSource का उपयोग करते समय डेटा तक अधिक कुशल पहुंच की अनुमति देते हैं। अपने GEOS समकक्ष के विपरीत, OGRGeometry स्थानिक संदर्भ प्रणालियों और समन्वय परिवर्तन का समर्थन करता है:

>>> from django.contrib.gis.gdal import OGRGeometry
>>> polygon = OGRGeometry('POLYGON((0 0, 5 0, 5 5, 0 5))')
class OGRGeometry(geom_input, srs=None)

यह ऑब्जेक्ट OGR ज्यामिति वर्ग के लिए एक आवरण है। इन ऑब्जेक्ट्स को सीधे दिए गए geom_input पैरामीटर से geom_input किया जाता है, जिसमें WKT, HEX, GeoJSON, WKB डेटा युक्त buffer या OGRGeomType ऑब्जेक्ट युक्त स्ट्रिंग हो सकता है। Layer से वेक्टर डेटा पढ़ते समय (जो एक डेटा Feature.geom एक हिस्सा है)।

classmethod from_gml(gml_string)

दिए गए GML स्ट्रिंग से एक OGRGeometry निर्माण करता है।

classmethod from_bbox(bbox)

दिए गए बाउंडिंग बॉक्स (4-ट्यूपल) से एक Polygon निर्माण करता है।

__len__()

एक LineString में अंकों की संख्या, एक Polygon में छल्ले की संख्या, या एक GeometryCollection LineString में GeometryCollection की संख्या देता है। अन्य ज्यामिति प्रकारों पर लागू नहीं है।

__iter__()

एक LineString , Polygon में रिंग्स या GeometryCollection में जियोमेट्री में पॉइंट्स पर Iterates। अन्य ज्यामिति प्रकारों पर लागू नहीं है।

__getitem__()

एक LineString लिए निर्दिष्ट सूचकांक पर बिंदु को LineString , एक Polygon लिए निर्दिष्ट सूचकांक में आंतरिक रिंग, या एक ज्यामिति में निर्दिष्ट सूचकांक में GeometryCollection । अन्य ज्यामिति प्रकारों पर लागू नहीं है।

dimension

ज्यामिति के समन्वित आयामों की संख्या, अंक के लिए 0, लाइनों के लिए 1, और इसके बाद:

>> polygon.dimension
2
coord_dim

इस ज्यामिति के समन्वय आयाम को लौटाता है या सेट करता है। उदाहरण के लिए, मान दो-आयामी ज्यामितीय के लिए 2 होगा।

geom_count

इस ज्यामिति में तत्वों की संख्या लौटाता है:

>>> polygon.geom_count
1
point_count

इस ज्यामिति का वर्णन करने के लिए उपयोग किए जाने वाले अंकों की संख्या लौटाता है:

>>> polygon.point_count
4
num_points

point_count लिए उपनाम।

num_coords

point_count लिए उपनाम।

geom_type

OGRGeomType ऑब्जेक्ट के रूप में, इस ज्यामिति के प्रकार को OGRGeomType है।

geom_name

इस ज्यामिति के प्रकार का नाम लौटाता है:

>>> polygon.geom_name
'POLYGON'
area

इस ज्यामिति का क्षेत्र लौटाता है, या ज्यामिति के लिए 0 जिसमें एक क्षेत्र नहीं होता है:

>>> polygon.area
25.0
envelope

इस ज्यामिति के लिफाफे को एक Envelope वस्तु के रूप में लौटाता है।

extent

इस ज्यामिति के लिफाफे को एक Envelope वस्तु के बजाय 4-टूपल के रूप में लौटाता है:

>>> point.extent
(0.0, 0.0, 5.0, 5.0)
srs

यह गुण इस ज्यामिति के लिए स्थानिक संदर्भ को नियंत्रित करता है, या None अगर कोई स्थानिक संदर्भ प्रणाली इसे सौंपी गई है। यदि असाइन किया गया है, तो इस संपत्ति तक पहुँच एक SpatialReference ऑब्जेक्ट देता है। इसे किसी अन्य SpatialReference ऑब्जेक्ट या किसी भी इनपुट के साथ सेट किया जा सकता है, जिसे SpatialReference स्वीकार करता है। उदाहरण:

>>> city.geom.srs.name
'GCS_WGS_1984'
srid

इस ज्यामिति के स्थानिक संदर्भ के अनुरूप स्थानिक संदर्भ पहचानकर्ता लौटाता है या सेट करता है। यदि इस ज्यामिति से जुड़ी कोई स्थानिक संदर्भ जानकारी नहीं है, या यदि कोई SRID निर्धारित नहीं किया जा सकता है तो None लौटाता है।

geos

इस ज्यामिति के अनुरूप एक GEOSGeometry ऑब्जेक्ट देता है।

gml

GML प्रारूप में इस ज्यामिति का एक स्ट्रिंग प्रतिनिधित्व लौटाता है:

>>> OGRGeometry('POINT(1 2)').gml
'<gml:Point><gml:coordinates>1,2</gml:coordinates></gml:Point>'
hex

हेक्स WKB प्रारूप में इस ज्यामिति का एक स्ट्रिंग प्रतिनिधित्व लौटाता है:

>>> OGRGeometry('POINT(1 2)').hex
'0101000000000000000000F03F0000000000000040'
json

JSON प्रारूप में इस ज्यामिति का एक स्ट्रिंग प्रतिनिधित्व लौटाता है:

>>> OGRGeometry('POINT(1 2)').json
'{ "type": "Point", "coordinates": [ 1.000000, 2.000000 ] }'
kml

केएमएल प्रारूप में इस ज्यामिति का एक स्ट्रिंग प्रतिनिधित्व लौटाता है।

wkb_size

इस ज्यामिति का WKB प्रतिनिधित्व रखने के लिए आवश्यक WKB बफर के आकार को लौटाता है:

>>> OGRGeometry('POINT(1 2)').wkb_size
21
wkb

इस ज्यामिति के WKB प्रतिनिधित्व वाले buffer को लौटाता है।

wkt

WKT प्रारूप में इस ज्यामिति का एक स्ट्रिंग प्रतिनिधित्व लौटाता है।

ewkt

इस ज्यामिति के EWKT प्रतिनिधित्व को लौटाता है।

clone()

इस ज्यामिति ऑब्जेक्ट का एक नया OGRGeometry क्लोन लौटाता है।

close_rings()

यदि इस ज्यामिति के भीतर कोई रिंग है जिसे बंद नहीं किया गया है, तो यह रूटीन शुरुआती बिंदु को अंत तक जोड़कर करेगा:

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

इस ज्यामिति को एक अलग स्थानिक संदर्भ प्रणाली में बदल देता है। एक CoordTransform ऑब्जेक्ट, एक SpatialReference ऑब्जेक्ट, या SpatialReference (स्थानिक संदर्भ WKT और PROJ.4 तार, या एक पूर्णांक SRID सहित) द्वारा स्वीकार किए गए किसी अन्य इनपुट को ले सकता है।

डिफ़ॉल्ट रूप से कुछ भी नहीं लौटाया जाता है और ज्यामिति को जगह में बदल दिया जाता है। हालाँकि, यदि clone कीवर्ड True सेट है, तो इसके बजाय इस ज्यामिति का एक परिवर्तित क्लोन वापस आ जाता है।

intersects(other)

यदि यह ज्यामिति दूसरे को काटती है, तो True , अन्यथा False लौटाता है।

equals(other)

यदि यह ज्यामिति दूसरे के बराबर है, तो True है, अन्यथा रिटर्न करता है।

disjoint(other)

यदि यह ज्यामिति स्थानिक रूप से असम्बद्ध है (यानी प्रतिच्छेद नहीं करता है) तो यह True , अन्यथा वापस लौटाता है।

touches(other)

यदि यह ज्यामिति दूसरे को स्पर्श करती है, तो True , अन्यथा False लौटाता है।

crosses(other)

यदि यह ज्यामिति दूसरे को पार करती है, तो True , अन्यथा False लौटाता है।

within(other)

यदि यह ज्यामिति दूसरे के भीतर समाहित है, तो True है, अन्यथा रिटर्न False

contains(other)

यदि यह ज्यामिति दूसरे को सम्‍मिलित करता है, तो True , अन्यथा False लौटाता है।

overlaps(other)

यदि यह ज्यामिति दूसरे को ओवरलैप करती है, तो True , अन्यथा False लौटाता है।

boundary()

इस ज्यामिति की सीमा, एक नए OGRGeometry ऑब्जेक्ट के रूप में।

convex_hull

सबसे छोटा उत्तल बहुभुज जिसमें एक नई OGRGeometry ऑब्जेक्ट के रूप में यह ज्यामिति OGRGeometry है।

difference()

एक नए OGRGeometry ऑब्जेक्ट के रूप में इस ज्यामिति और दूसरे के अंतर से मिलकर क्षेत्र लौटाता है।

intersection()

एक नए OGRGeometry ऑब्जेक्ट के रूप में इस ज्यामिति और दूसरे के चौराहे से मिलकर क्षेत्र लौटाता है।

sym_difference()

एक नए OGRGeometry ऑब्जेक्ट के रूप में इस ज्यामिति और दूसरे के सममित अंतर से मिलकर क्षेत्र लौटाता है।

union()

एक नए OGRGeometry ऑब्जेक्ट के रूप में इस ज्यामिति और दूसरे के मिलन वाले क्षेत्र को लौटाता है।

tuple

एक बिंदु ज्यामिति के निर्देशांक को एक ट्यूपल के रूप में लौटाता है, एक रेखा ज्यामिति के निर्देशांक को ट्यूपल्स के एक ट्यूपल के रूप में, और इसके बाद:

>>> OGRGeometry('POINT (1 2)').tuple
(1.0, 2.0)
>>> OGRGeometry('LINESTRING (1 2,3 4)').tuple
((1.0, 2.0), (3.0, 4.0))
coords

tuple लिए एक उपनाम।

class Point
x

इस बिंदु के X समन्वय को लौटाता है:

>>> OGRGeometry('POINT (1 2)').x
1.0
y

इस बिंदु के Y समन्वय को लौटाता है:

>>> OGRGeometry('POINT (1 2)').y
2.0
z

इस बिंदु के Z समन्वय को लौटाता है, या यदि बिंदु का Z समन्वय नहीं है तो कोई भी:

>>> OGRGeometry('POINT (1 2 3)').z
3.0
class LineString
x

इस लाइन में X निर्देशांक की सूची लौटाता है:

>>> OGRGeometry('LINESTRING (1 2,3 4)').x
[1.0, 3.0]
y

इस पंक्ति में Y निर्देशांक की सूची लौटाता है:

>>> OGRGeometry('LINESTRING (1 2,3 4)').y
[2.0, 4.0]
z

इस लाइन में Z निर्देशांक की सूची लौटाता है, या यदि पंक्ति में Z निर्देशांक None तो None :

>>> OGRGeometry('LINESTRING (1 2 3,4 5 6)').z
[3.0, 6.0]
class Polygon
shell

इस बहुभुज के खोल या बाहरी रिंग को एक LinearRing ज्यामिति के रूप में LinearRing है।

exterior_ring

shell लिए एक उपनाम।

centroid

इस बहुभुज के केंद्रक का प्रतिनिधित्व करने वाला एक Point देता है।

class GeometryCollection
add(geom)

इस ज्यामिति संग्रह में एक ज्यामिति जोड़ता है। अन्य ज्यामिति प्रकारों पर लागू नहीं है।

OGRGeomType

class OGRGeomType(type_input)

यह वर्ग किसी भी तरह से OGR ज्यामिति प्रकार के प्रतिनिधित्व की अनुमति देता है:

>>> 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 True
name

OGR ज्यामिति प्रकार का एक शॉर्ट-हैंड स्ट्रिंग फॉर्म लौटाता है:

>>> gt1.name
'Polygon'
num

OGR ज्यामिति प्रकार के अनुरूप संख्या लौटाता है:

>>> gt1.num
3
django

इस OGR प्रकार के भंडारण के लिए उपयोग करने के लिए Django फ़ील्ड प्रकार (GeometryField का एक उपवर्ग) लौटाता है, या यदि कोई उचित Django प्रकार None तो:

>>> gt1.django
'PolygonField'

Envelope

class Envelope(*args)

एक OGR लिफाफा संरचना का प्रतिनिधित्व करता है जिसमें न्यूनतम और अधिकतम X होता है, Y एक आयत बाउंडिंग बॉक्स के लिए निर्देशांक करता है। चर का नामकरण OGR लिफाफा सी संरचना के साथ संगत है।

min_x

न्यूनतम X का मान समन्वय करता है।

min_y

अधिकतम X का मान समन्वय करता है।

max_x

न्यूनतम Y का मान समन्वय करता है।

max_y

अधिकतम Y का मान समन्वय करता है।

ur

ऊपरी-दाएं समन्वय, एक टपल के रूप में।

ll

निचले-बाएँ समन्वय, एक नलिका के रूप में।

tuple

लिफाफे का प्रतिनिधित्व करने वाला एक टपल।

wkt

WKT प्रारूप में बहुभुज के रूप में इस लिफाफे का प्रतिनिधित्व करने वाला एक स्ट्रिंग।

expand_to_include(*args)

सिस्टम ऑब्जेक्ट्स कोऑर्डिनेट करें

SpatialReference

class SpatialReference(srs_input)

स्थानिक संदर्भ वस्तुओं को दिए गए srs_input पर आरंभीकृत किया गया है, जो निम्नलिखित में से एक हो सकता है:

  • OGC अच्छी तरह से ज्ञात पाठ (WKT) (एक स्ट्रिंग)
  • EPSG कोड (पूर्णांक या स्ट्रिंग)
  • PROJ.4 स्ट्रिंग
  • प्रसिद्ध मानकों के लिए एक शॉर्टहैंड स्ट्रिंग ( 'WGS84' , 'WGS72' , 'NAD27' , 'NAD83' )

उदाहरण:

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

दिए गए स्ट्रिंग विशेषता नोड का मान लौटाता है, अगर नोड मौजूद नहीं है, तो None भी नहीं। एक पैरामीटर के रूप में एक टपल भी ले सकते हैं, (लक्ष्य, बच्चा), जहां बच्चा डब्ल्यूकेटी में विशेषता का सूचकांक है। उदाहरण के लिए:

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

दिए गए लक्ष्य नोड के लिए विशेषता मान (जैसे 'PROJCS' )। इंडेक्स कीवर्ड वापस लौटने के लिए चाइल्ड नोड के एक इंडेक्स को निर्दिष्ट करता है।

auth_name(target)

दिए गए स्ट्रिंग लक्ष्य नोड के लिए प्राधिकरण नाम लौटाता है।

auth_code(target)

दिए गए स्ट्रिंग लक्ष्य नोड के लिए प्राधिकरण कोड लौटाता है।

clone()

इस स्थानिक संदर्भ वस्तु का एक क्लोन लौटाता है।

identify_epsg()

यह विधि इस SpatialReference का निरीक्षण SpatialReference और SpatialReference EPSG प्राधिकरण नोड्स जोड़ेगी जहाँ EPSG पहचानकर्ता लागू होता है।

from_esri()

इस SpatialReference को ESRI के प्रारूप से EPSG में मॉर्फ करता है

to_esri()

इस SpatialReference को ESRI के प्रारूप में मॉर्फ करता है।

validate()

दिए गए स्थानिक संदर्भ वैध है या नहीं, यह देखने के लिए जाँच करता है कि क्या कोई अपवाद नहीं उठाया जाएगा।

import_epsg(epsg)

EPSG कोड से स्थानिक संदर्भ आयात करें।

import_proj(proj)

PROJ.4 स्ट्रिंग से स्थानिक संदर्भ आयात करें।

import_user_input(user_input)
import_wkt(wkt)

WKT से स्थानिक संदर्भ आयात करें।

import_xml(xml)

XML से स्थानिक संदर्भ आयात करें।

name

इस स्थानिक संदर्भ का नाम लौटाता है।

srid

शीर्ष-स्तरीय प्राधिकरण का SRID लौटाता है, या यदि None अपरिभाषित None

linear_name

रैखिक इकाइयों का नाम देता है।

linear_units

रैखिक इकाइयों का मान लौटाता है।

angular_name

कोणीय इकाइयों का नाम लौटाता है। ”

angular_units

कोणीय इकाइयों का मान लौटाता है।

units

इकाइयों के मूल्य और इकाइयों के नाम का 2-टपल लौटाता है और स्वचालित रूप से निर्धारित करेगा कि रैखिक या कोणीय इकाइयों को वापस करना है या नहीं।

ellipsoid

इस स्थानिक संदर्भ के लिए दीर्घवृत्तीय मापदंडों का एक टपल लौटाता है: (सेमीमाजर एक्सिस, सेमीमिनर एक्सिस, और इनवर्ट फ्लैटिंग)।

semi_major

इस स्थानिक संदर्भ के लिए दीर्घवृत्त के अर्ध प्रमुख अक्ष को लौटाता है।

semi_minor

इस स्थानिक संदर्भ के लिए दीर्घवृत्त के अर्ध लघु अक्ष को लौटाता है।

inverse_flattening

इस स्थानिक संदर्भ के लिए दीर्घवृत्त का उलटा सपाट रिटर्न।

geographic

यदि यह स्थानिक संदर्भ भौगोलिक है (रूट नोड GEOGCS ) तो सही है।

local

यदि यह स्थानिक संदर्भ स्थानीय है (रूट नोड LOCAL_CS ) तो सही है।

projected

यदि यह स्थानिक संदर्भ एक अनुमानित समन्वय प्रणाली है (रूट नोड PROJCS ) तो सही है।

wkt

इस स्थानिक संदर्भ का WKT प्रतिनिधित्व लौटाता है।

pretty_wkt

WKT का 'सुंदर' प्रतिनिधित्व लौटाता है।

proj

इस स्थानिक संदर्भ के लिए PROJ.4 प्रतिनिधित्व लौटाता है।

proj4

SpatialReference.proj लिए उपनाम।

xml

इस स्थानिक संदर्भ का XML प्रतिनिधित्व लौटाता है।

CoordTransform

class CoordTransform(source, target)

एक समन्वय प्रणाली परिवर्तन का प्रतिनिधित्व करता है। यह दो SpatialReference साथ आरंभिक होता है, क्रमशः स्रोत और लक्ष्य समन्वय प्रणालियों का प्रतिनिधित्व करता है। अलग-अलग ज्यामितीयों पर बार-बार एक ही समन्वय परिवर्तन करते समय इन वस्तुओं का उपयोग किया जाना चाहिए:

>>> ct = CoordTransform(SpatialReference('WGS84'), SpatialReference('NAD83'))
>>> for feat in layer:
...     geom = feat.geom # getting clone of feature geometry
...     geom.transform(ct) # transforming

रेखापुंज डेटा ऑब्जेक्ट्स

GDALRaster

GDALRaster GDAL रास्टर सोर्स ऑब्जेक्ट के लिए एक आवरण है जो एक सरल, सुसंगत इंटरफ़ेस का उपयोग करके GDAL- समर्थित जियोस्पेशियल फ़ाइल स्वरूपों और डेटा स्रोतों की एक किस्म से डेटा पढ़ने का समर्थन करता है। प्रत्येक डेटा स्रोत को GDALRaster ऑब्जेक्ट द्वारा GDALRaster जाता है, जिसमें बैंड नाम के डेटा की एक या अधिक परतें होती हैं। प्रत्येक बैंड, जो GDALBand ऑब्जेक्ट द्वारा GDALBand जाता है, में GDALBand इमेज डेटा होता है। उदाहरण के लिए, एक RGB छवि को तीन बैंड के रूप में दर्शाया जाता है: एक लाल के लिए, एक हरे रंग के लिए, और एक नीले रंग के लिए।

ध्यान दें

रेखापुंज डेटा के लिए एक रेखापुंज उदाहरण और इसके डेटा स्रोत के बीच कोई अंतर नहीं है। ज्यामिति वस्तुओं के विपरीत, GDALRaster ऑब्जेक्ट हमेशा एक डेटा स्रोत होते हैं। संबंधित ड्राइवर का उपयोग करके मेमोरी में अस्थाई आपदाओं को त्वरित किया जा सकता है, लेकिन वे फ़ाइल-आधारित रैस्टर स्रोतों के समान ही होंगे।

class GDALRaster(ds_input, write=False)

GDALRaster लिए GDALRaster दो मापदंडों को स्वीकार करता है। पहला पैरामीटर रेखापुंज स्रोत को परिभाषित करता है, और दूसरा पैरामीटर परिभाषित करता है कि क्या रेखापुंज को लेखन मोड में खोला जाना चाहिए। नए बनाए गए रैस्टर्स के लिए, दूसरे पैरामीटर को नजरअंदाज कर दिया जाता है और नया रैस्टर हमेशा राइट मोड में बनाया जाता है।

पहला पैरामीटर तीन रूप ले सकता है: एक फ़ाइल पथ का प्रतिनिधित्व करने वाला एक स्ट्रिंग, एक नया रास्टर को परिभाषित करने वाले मूल्यों के साथ एक शब्दकोश, या एक रेखीय ऑब्जेक्ट एक रेखापुंज फ़ाइल का प्रतिनिधित्व करता है।

यदि इनपुट एक फ़ाइल पथ है, तो रेखापुंज वहाँ से खोला जाता है। यदि इनपुट एक डिक्शनरी में कच्चा डेटा है, तो मापदंडों की width , height , और srid की आवश्यकता होती है। यदि इनपुट एक बाइट्स ऑब्जेक्ट है, तो इसे GDAL वर्चुअल फाइल सिस्टम का उपयोग करके खोला जाएगा।

शब्दकोश इनपुट का उपयोग करके रेखापुंज कैसे बनाएं, इसके विस्तृत विवरण के लिए, डेटा से रेखांकन बनाना देखें। वर्चुअल फाइलसिस्टम में रेखापुंज कैसे करें, इसके विस्तृत विवरण के लिए, GDAL के वर्चुअल फाइल सिस्टम का उपयोग करना देखें।

निम्नलिखित उदाहरण से पता चलता है कि विभिन्न इनपुट स्रोतों से कैसे आपदाएं पैदा की जा सकती हैं (जियोडॉन्जॉन्ग परीक्षणों से नमूना डेटा का उपयोग करके, नमूना डेटा अनुभाग भी देखें)।

>>> 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'
Django 2.0 में बदला:

GDAL के मेमोरी-आधारित वर्चुअल फाइल सिस्टम में चूहों को पढ़ने और लिखने की क्षमता जोड़ा। GDALRaster ऑब्जेक्ट्स को अब बाइनरी डेटा इन-मेमोरी में परिवर्तित किया जा सकता है।

name

स्रोत का नाम जो इनपुट फ़ाइल पथ के बराबर है या तात्कालिकता पर प्रदान किया गया नाम है।

>>> GDALRaster({'width': 10, 'height': 10, 'name': 'myraster', 'srid': 4326}).name
'myraster'
driver

GDAL ड्राइवर का नाम इनपुट फ़ाइल को संभालने के लिए उपयोग किया जाता है। किसी फ़ाइल से बनाए गए GDALRaster लिए, ड्राइवर प्रकार का स्वचालित रूप से पता लगाया जाता है। खरोंच से आपदाओं का निर्माण डिफ़ॉल्ट रूप से ( 'MEM' ) द्वारा इन-मेमोरी रेखापुंज है, लेकिन आवश्यकतानुसार इसे बदला जा सकता है। मिसाल के तौर पर, GeoTiff फाइल के लिए GTiff इस्तेमाल करें। फ़ाइल प्रकारों की सूची के लिए, GDAL Raster Formats सूची भी देखें।

निम्नलिखित उदाहरण के माध्यम से एक स्मृति रेखापुंज बनाया जाता है:

>>> GDALRaster({'width': 10, 'height': 10, 'srid': 4326}).driver.name
'MEM'

निम्नलिखित उदाहरण के माध्यम से एक फ़ाइल आधारित जियोफाई रिफ़र बनाया गया है:

>>> 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'
width

पिक्सल (एक्स-एक्सिस) में स्रोत की चौड़ाई।

>>> GDALRaster({'width': 10, 'height': 20, 'srid': 4326}).width
10
height

पिक्सल (Y- अक्ष) में स्रोत की ऊंचाई।

>>> GDALRaster({'width': 10, 'height': 20, 'srid': 4326}).height
20
srs

एक स्थानिक संदर्भ उदाहरण के रूप में, रेखापुंज का स्थानिक संदर्भ प्रणाली। SRS को अन्य SpatialReference सेट करके या SpatialReference कंस्ट्रक्टर द्वारा स्वीकार किए गए किसी भी इनपुट को प्रदान करके बदला जा सकता है।

>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.srs.srid
4326
>>> rst.srs = 3086
>>> rst.srs.srid
3086
srid

रेखापुंज का स्थानिक संदर्भ प्रणाली पहचानकर्ता (SRID)। यह गुण srs विशेषता के माध्यम से SRID प्राप्त करने या स्थापित करने का एक शॉर्टकट है।

>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.srid
4326
>>> rst.srid = 3086
>>> rst.srid
3086
>>> rst.srs.srid  # This is equivalent
3086
geotransform

एफाइन ट्रांसफ़ॉर्मेशन मैट्रिक्स का उपयोग स्रोत को जियॉर्फ़ेरेंस करने के लिए किया जाता है, छह गुणांक के एक टपल के रूप में, जो पिक्सेल / लाइन को निम्न संबंधों का उपयोग करते हुए जियोफेरेन्स्ड स्पेस में समन्वयित करता है:

Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)
Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)

origin (सूचकांक 0 और 3), scale (सूचकांक 1 और 5) और skew (सूचक 2 और 4) गुणों को एक्सेस करके समान मूल्यों को प्राप्त किया जा सकता है।

डिफ़ॉल्ट [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]
origin

स्रोत के स्थानिक संदर्भ प्रणाली में रेखापुंज के शीर्ष बाएँ मूल के निर्देशांक, x और y सदस्यों के साथ एक बिंदु वस्तु के रूप में।

>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.origin
[0.0, 0.0]
>>> rst.origin.x = 1
>>> rst.origin
[1.0, 0.0]
scale

पिक्सेल की चौड़ाई और ऊंचाई का उपयोग रेखापुंज को रेखापुंज के लिए किया जाता है, x और y सदस्यों के साथ बिंदु वस्तु के रूप में। अधिक जानकारी के लिए geotransform देखें।

>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.scale
[1.0, -1.0]
>>> rst.scale.x = 2
>>> rst.scale
[2.0, -1.0]
skew

तिरछे गुणांक x और y सदस्यों के साथ एक बिंदु वस्तु के रूप में, रेखापुंज को रेखागणित करने के लिए उपयोग किया जाता है। उत्तर अप छवियों के मामले में, ये गुणांक दोनों 0

>>> rst = GDALRaster({'width': 10, 'height': 20, 'srid': 4326})
>>> rst.skew
[0.0, 0.0]
>>> rst.skew.x = 3
>>> rst.skew
[3.0, 0.0]
extent

स्रोत (xmin, ymin, xmax, ymax) के स्थानिक संदर्भ प्रणाली में 4-टुपल के रूप में, रेखापुंज स्रोत की सीमा (सीमा मान) ।

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

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)

इस रेखापुंज का एक विकृत संस्करण देता है।

युद्ध के मापदंडों को ds_input तर्क के माध्यम से निर्दिष्ट किया जा सकता है। का उपयोग ds_input वर्ग निर्माता के संगत तर्क के अनुरूप है। यह लक्ष्य रेखापुंज की विशेषताओं के साथ एक शब्दकोश है। अनुमत शब्दकोश प्रमुख मूल्य चौड़ाई, ऊंचाई, SRID, मूल, पैमाने, तिरछा, डेटाटाइप, ड्राइवर और नाम (फ़ाइल नाम) हैं।

डिफ़ॉल्ट रूप से, ताना कार्य मूल पैरामीटर रेखापुंज के मान के बराबर अधिकांश पैरामीटर रखता है, इसलिए केवल उन मापदंडों को निर्दिष्ट किया जाना चाहिए जिन्हें बदलना चाहिए। ध्यान दें कि इसमें ड्राइवर शामिल है, इसलिए फ़ाइल-आधारित रिस्ते के लिए ताना फ़ंक्शन डिस्क पर एक नया रेखापुंज बनाएगा।

एकमात्र पैरामीटर जो स्रोत रेखापुंज से अलग तरीके से सेट किया गया है वह नाम है। रेखापुंज नाम का डिफ़ॉल्ट मान स्रोत रेखापुंज का नाम है जिसके साथ जोड़ा गया है '_copy' + source_driver_name । फ़ाइल-आधारित रेखापुंजों के लिए यह लक्ष्य रेखापुंज की फ़ाइल पथ प्रदान करने के लिए अनुशंसित है।

पुनरावर्तन के लिए उपयोग किए जाने वाले रेज़मैप्लिंग एल्गोरिथ्म को resampling तर्क के साथ निर्दिष्ट किया जा सकता है। डिफ़ॉल्ट है NearestNeighbor , और अन्य अनुमति प्राप्त मान रहे हैं Bilinear , Cubic , CubicSpline , Lanczos , Average , और Mode

max_error तर्क इनपुट पिक्सेल में मापा अधिकतम त्रुटि है कि परिवर्तन का अनुमान करने में अनुमति दी है निर्दिष्ट करने के लिए इस्तेमाल किया जा सकता। डिफ़ॉल्ट सटीक गणना के लिए 0.0 है।

परिचित उपयोगकर्ताओं के लिए GDAL , इस फ़ंक्शन में gdalwarp कमांड-लाइन उपयोगिता के समान कार्यक्षमता है ।

उदाहरण के लिए, ताना फ़ंक्शन का उपयोग अपने मूल पिक्सेल पैमाने के दोहरे को रेखापुंज करने के लिए किया जा सकता है:

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

निर्दिष्ट SRID के साथ इस रेखापुंज का एक रूपांतरित संस्करण लौटाता है।

यह फ़ंक्शन वर्तमान रेखापुंज को एक नए स्थानिक संदर्भ प्रणाली में बदल देता है जिसे एक के साथ निर्दिष्ट किया जा सकता है srid । यह नए स्थानिक संदर्भ प्रणाली में वर्तमान रेखापुंज की सीमा और पैमाने की गणना करता है और warp फ़ंक्शन का उपयोग करके रेखापुंज को चेतावनी देता है।

डिफ़ॉल्ट रूप से, स्रोत रेखापुंज के चालक का उपयोग किया जाता है और रेखापुंज का नाम मूल नाम होता है जिसके साथ जोड़ा जाता है '_copy' + source_driver_name । एक अलग ड्राइवर या नाम को तर्कों driver और name तर्कों के साथ निर्दिष्ट किया जा सकता है।

डिफ़ॉल्ट रीसम्प्लिंग एल्गोरिथ्म है, NearestNeighbour लेकिन resampling तर्क का उपयोग करके बदला जा सकता है। रेज़मैपलिंग के लिए डिफ़ॉल्ट अधिकतम अनुमत त्रुटि 0.0 है और max_error तर्क का उपयोग करके इसे बदला जा सकता है। warp उन तर्कों पर विस्तार के लिए प्रलेखन से परामर्श करें ।

>>> 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]
info
Django 2.0 में नया:

रेखापुंज के सारांश के साथ एक स्ट्रिंग लौटाता है। यह gdalinfo कमांड लाइन उपयोगिता के बराबर है ।

metadata
Django 2.0 में नया:

इस रेखापुंज के मेटाडेटा, एक नेस्टेड शब्दकोश के रूप में दर्शाया गया है। प्रथम स्तर की कुंजी मेटाडेटा डोमेन है। दूसरे स्तर में प्रत्येक डोमेन से मेटाडेटा आइटम नाम और मान शामिल हैं।

मेटाडेटा आइटम सेट या अपडेट करने के लिए, उपर्युक्त वर्णित नेस्टेड संरचना का उपयोग करके विधि के अनुरूप मेटाडेटा आइटम पास करें। केवल कुंजी जो निर्दिष्ट शब्दकोश में हैं अपडेट की गई हैं; बाकी मेटाडेटा अपरिवर्तित रहता है।

मेटाडेटा आइटम निकालने के लिए, None मेटाडेटा मान के रूप में उपयोग करें ।

>>> 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_buffer
Django 2.0 में नया:

bytes इस रेखापुंज का एक प्रतिनिधित्व। None GDAL के आभासी फाइल सिस्टम में संग्रहीत नहीं होने वाली आपदाओं के लिए रिटर्न ।

is_vsi_based
Django 2.0 में नया:

यदि यह रेखापुंज GDAL के आभासी फाइल सिस्टम में संग्रहीत है, तो यह दर्शाता है कि एक बूलियन

GDALBand

class GDALBand

GDALBand उदाहरण स्पष्ट रूप से नहीं बनाए गए हैं, बल्कि एक GDALRaster वस्तु से प्राप्त किए गए हैं , इसकी bands विशेषता के माध्यम से । GDALBands में रेखापुंज के वास्तविक पिक्सेल मान होते हैं।

description

बैंड का नाम या विवरण, यदि कोई हो।

width

पिक्सल (एक्स-एक्सिस) में बैंड की चौड़ाई।

height

पिक्सल (Y- अक्ष) में बैंड की ऊंचाई।

pixel_count

इस बैंड में कुल पिक्सेल। के बराबर है width * height

statistics(refresh=False, approximate=False)

इस बैंड के पिक्सेल मूल्यों पर आंकड़ों की गणना करें। वापसी मूल्य निम्नलिखित संरचना के साथ एक टपल है (minimum, maximum, mean, standard deviation) :।

यदि approximate तर्क पर सेट किया गया है True , तो आंकड़ों की गणना ओवरव्यू या छवि टाइलों के सबसेट के आधार पर की जा सकती है।

यदि refresh तर्क सेट किया गया है True , तो आंकड़े सीधे डेटा से गणना की जाएगी, और परिणाम के साथ कैश अपडेट किया जाएगा।

यदि लगातार कैश मान पाया जाता है, तो वह मान वापस कर दिया जाता है। लगातार सहायक मेटाडेटा (PAM) सेवाओं का उपयोग करने वाले रेखापुंज स्वरूपों के लिए, आँकड़ों को एक सहायक फ़ाइल में कैश्ड किया जा सकता है। कुछ मामलों में यह मेटाडेटा पिक्सेल मूल्यों के साथ सिंक से बाहर हो सकता है या पिछले कॉल से मानों को वापस करने के लिए कारण हो सकता है जो approximate तर्क के मूल्य को नहीं दर्शाता है। ऐसे मामलों में, refresh अद्यतन मूल्यों को प्राप्त करने और उन्हें कैश में संग्रहीत करने के लिए तर्क का उपयोग करें।

खाली बैंड के लिए (जहां सभी पिक्सेल मान "कोई डेटा नहीं हैं"), सभी आंकड़े वापस आ गए हैं None

आँकड़े भी पहुंच कर सीधे प्राप्त किए जा सकें min , max , mean , और std गुण।

min

बैंड का न्यूनतम पिक्सेल मूल्य ("डेटा नहीं" मूल्य को छोड़कर)।

max

बैंड का अधिकतम पिक्सेल मूल्य ("कोई डेटा नहीं" मूल्य को छोड़कर)।

mean

बैंड के सभी पिक्सेल मूल्यों का मतलब ("कोई डेटा नहीं" मूल्य को छोड़कर)।

std

बैंड के सभी पिक्सेल मूल्यों का मानक विचलन ("कोई डेटा नहीं" मूल्य को छोड़कर)।

nodata_value

एक बैंड के लिए "कोई डेटा" मूल्य आम तौर पर पिक्सेल को चिह्नित करने के लिए उपयोग किया जाने वाला एक विशेष मार्कर मूल्य है जो मान्य डेटा नहीं हैं। ऐसे पिक्सल को आमतौर पर प्रदर्शित नहीं किया जाना चाहिए, न ही विश्लेषण कार्यों में योगदान करना चाहिए।

मौजूदा "नो डेटा" मान को हटाने के लिए, इस संपत्ति को None (GDAL) 2.1 की आवश्यकता है) सेट करें ।

datatype(as_string=False)

बैंड में निहित डेटा प्रकार, एक पूर्णांक 0 (अज्ञात) और 11. अगर बीच निरंतर रूप में as_string किया जाता है True , डेटा प्रकार निम्नलिखित संभव मूल्यों के साथ एक स्ट्रिंग के रूप दिया जाता है: GDT_Unknown , GDT_Byte , GDT_UInt16 , GDT_Int16 , GDT_UInt32 , GDT_Int32 , GDT_Float32 , GDT_Float64 , GDT_CInt16 , GDT_CInt32 , GDT_CFloat32 , और GDT_CFloat64

color_interp(as_string=False)
Django 2.0 में नया:

बैंड के लिए रंग व्याख्या, 0and 16. अगर बीच का एक पूर्णांक के रूप में as_string किया जाता है True , डेटा प्रकार निम्नलिखित संभव मूल्यों के साथ एक स्ट्रिंग के रूप दिया जाता है: 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 , और GCI_YCbCr_CrBandGCI_YCbCr_CrBand यह भी दर्शाता है GCI_Max क्योंकि दोनों पूर्णांक 16 के अनुरूप हैं, लेकिन केवल GCI_YCbCr_CrBand एक स्ट्रिंग के रूप में लौटाया जाता है।

data(data=None, offset=None, size=None, shape=None)

के पिक्सेल मूल्यों तक पहुँचकर्ता GDALBand । यदि कोई पैरामीटर प्रदान नहीं किया गया है तो पूरा डेटा ऐरे लौटाता है। पिक्सेल सरणी के सबसेट को ट्यूप के रूप में ऑफसेट और ब्लॉक आकार निर्दिष्ट करके अनुरोध किया जा सकता है।

यदि NumPy उपलब्ध है, तो डेटा को NumPy सरणी के रूप में लौटाया जाता है। प्रदर्शन कारणों के लिए, यह NumPy का उपयोग करने के लिए अत्यधिक अनुशंसित है।

GDALBand यदि data पैरामीटर प्रदान किया गया है तो डेटा लिखा जाता है । इनपुट निम्न प्रकारों में से एक हो सकता है - पैक्ड स्ट्रिंग, बफर, लिस्ट, एरे, और न्यूम्पी एरे। इनपुट में वस्तुओं की संख्या आम तौर पर बैंड में पिक्सेल की कुल संख्या के अनुरूप होनी चाहिए, या यदि offset और size पैरामीटर प्रदान किए जाते हैं तो पिक्सेल मूल्यों के एक विशिष्ट ब्लॉक के लिए पिक्सेल की संख्या ।

यदि इनपुट में वस्तुओं की संख्या लक्ष्य पिक्सेल ब्लॉक से अलग है, तो shape पैरामीटर को निर्दिष्ट किया जाना चाहिए। आकार एक टपल है जो पिक्सेल में इनपुट डेटा की चौड़ाई और ऊंचाई को निर्दिष्ट करता है। फिर डेटा को चयनित ब्लॉक के पिक्सेल मूल्यों को अपडेट करने के लिए दोहराया जाता है। उदाहरण के लिए, एकल बैंड को एक मान के साथ भरना उपयोगी है।

उदाहरण के लिए:

>>> 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)
metadata
Django 2.0 में नया:

इस बैंड का मेटाडेटा। कार्यक्षमता के समान है GDALRaster.metadata

डेटा से आपदाओं का निर्माण

यह खंड ds_input पैरामीटर का उपयोग करके खरोंच से रेखापुंज बनाने का तरीका बताता है ।

जब कंस्ट्रक्टर dict को पास किया जाता है तो एक नया रैस्टर बनाया जाता है GDALRaster । शब्दकोश में मूल, आकार, या स्थानिक संदर्भ प्रणाली जैसे नए रेखापुंज के परिभाषित पैरामीटर शामिल हैं। शब्दकोश में पिक्सेल डेटा और नए रेखापुंज के प्रारूप के बारे में जानकारी भी हो सकती है। परिणामी रैस्टर इसलिए फ़ाइल-आधारित या मेमोरी-आधारित हो सकता है, जो निर्दिष्ट ड्राइवर पर निर्भर करता है।

शब्दकोश या JSON स्वाद में रेखापुंज डेटा का वर्णन करने के लिए कोई मानक नहीं है। GDALRaster इसलिए क्लास के लिए डिक्शनरी इनपुट की परिभाषा Django के लिए विशिष्ट है। यह जियोजोन प्रारूप से प्रेरित है , लेकिन geojson मानक वर्तमान में वेक्टर प्रारूपों तक सीमित है।

जब rasters बनाने अलग कुंजियों का उपयोग के उदाहरण इसी गुण और के तरीकों में से दस्तावेज में पाया जा सकता है GDALRaster और GDALBand कक्षाएं।

ds_input शब्दकोश

केवल कुछ ही कुंजी की आवश्यकता होती है ds_input एक रेखापुंज बनाने के लिए शब्दकोश: width , height , और srid । अन्य सभी मापदंडों में डिफ़ॉल्ट मान हैं (नीचे दी गई तालिका देखें)। ds_input शब्दकोश में पारित की जा सकने वाली चाबियों की सूची निकट से संबंधित है लेकिन GDALRaster गुणों के समान नहीं है । मापदंडों में से कई उन गुणों के लिए सीधे मैप किए जाते हैं; दूसरों को नीचे वर्णित किया गया है।

निम्न तालिका उन सभी कुंजियों का वर्णन करती है जिन्हें ds_input शब्दकोश में सेट किया जा सकता है ।

कुंजी चूक प्रयोग
srid अपेक्षित srid विशेषता के लिए मैप किया गया
width अपेक्षित width विशेषता के लिए मैप किया गया
height अपेक्षित height विशेषता के लिए मैप किया गया
driver MEM driver विशेषता के लिए मैप किया गया
name '' निचे देखो
origin 0 origin विशेषता के लिए मैप किया गया
scale 0 scale विशेषता के लिए मैप किया गया
skew 0 width विशेषता के लिए मैप किया गया
bands [] निचे देखो
nr_of_bands 0 निचे देखो
datatype 6 निचे देखो
papsz_options {} निचे देखो
name

स्ट्रिंग के नाम का प्रतिनिधित्व करते हुए। फ़ाइल-आधारित रेखापुंज बनाते समय, यह पैरामीटर नए रेखापुंज के लिए फ़ाइल पथ होना चाहिए। यदि नाम से शुरू होता है /vsimem/ , तो RD GDAL के वर्चुअल फाइल सिस्टम में बनाया जाता है।

datatype

सभी बैंडों के लिए डेटा प्रकार का प्रतिनिधित्व करने वाला पूर्णांक। डिफ़ॉल्ट 6 (फ्लोट 32)। एक नए रैस्टर के सभी बैंड को एक ही डेटाटाइप की आवश्यकता होती है। मान मानचित्रण है:

मूल्य GDAL पिक्सेल प्रकार विवरण
1 GDT_Byte आठ बिट अहस्ताक्षरित पूर्णांक
2 GDT_UInt16 सोलह बिट अहस्ताक्षरित पूर्णांक
3 GDT_Int16 सोलह बिट हस्ताक्षरित पूर्णांक
4 GDT_UInt32 बत्तीस अंको वाला पूर्णांक
5 GDT_Int32 बत्तीस बिट के पूर्णांक पर हस्ताक्षर किए
6 GDT_Float32 बत्तीस बिट फ़्लोटिंग पॉइंट
7 GDT_Float64 चौंसठ बिट फ्लोटिंग पॉइंट
nr_of_bands

रैस्टर के बैंड की संख्या का प्रतिनिधित्व करनेवाला। निर्माण पर बैंड डेटा पारित किए बिना एक रेखापुंज बनाया जा सकता है। यदि बैंड की संख्या निर्दिष्ट नहीं है, तो यह स्वचालित रूप से bands इनपुट की लंबाई से गणना की जाती है । निर्माण के बाद बैंड की संख्या को बदला नहीं जा सकता।

bands

band_input बैंड इनपुट डेटा के साथ शब्दकोशों की एक सूची । परिणामी बैंड इंडेक्स सूची में दिए गए समान हैं। बैंड इनपुट डिक्शनरी की परिभाषा नीचे दी गई है। यदि बैंड डेटा प्रदान नहीं किया गया है, तो रैस्टर बैंड मानों को शून्य की एक सरणी के रूप में त्वरित किया जाता है और "कोई डेटा नहीं" मान सेट किया जाता है None

papsz_options
Django 2.0 में नया:

रास्टर निर्माण विकल्पों के साथ एक शब्दकोश। रेखापुंज के निर्माण पर इनपुट शब्दकोश के प्रमुख-मूल्य जोड़े चालक को दिए जाते हैं।

उपलब्ध विकल्प ड्राइवर-विशिष्ट हैं और प्रत्येक ड्राइवर के प्रलेखन में वर्णित हैं।

शब्दकोश में मान केस-संवेदी नहीं हैं और स्वचालित रूप से निर्माण पर सही स्ट्रिंग प्रारूप में परिवर्तित हो जाते हैं।

निम्न उदाहरण GTiff ड्राइवर के लिए उपलब्ध कुछ विकल्पों का उपयोग करता है । परिणाम एक आंतरिक टाइलिंग योजना के साथ एक संपीड़ित हस्ताक्षरित बाइट रेखापुंज है। आंतरिक टाइलों का ब्लॉक आकार 23 से 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,
...    }
... })

band_input शब्दकोश

bands में महत्वपूर्ण ds_input शब्दकोश की एक सूची है band_input शब्दकोशों। प्रत्येक band_input शब्दकोश में पिक्सेल मान हो सकते हैं और नए रेखापुंज के बैंड पर सेट किए जाने वाले "कोई डेटा" मूल्य नहीं हो सकते। डेटा ऐरे में नए रैस्टर का पूरा आकार हो सकता है या छोटा हो सकता है। उन सरणियों के लिए जो पूर्ण रेखापुंज, से , और कुंजियों से छोटी होती हैं size , पिक्सेल मानों को नियंत्रित करती हैं। संबंधित कुंजियों को विधि में पास किया जाता है। उनकी कार्यक्षमता उस विधि के साथ बैंड डेटा सेट करने के समान है। निम्न तालिका उन कुंजियों का वर्णन करती है जिनका उपयोग किया जा सकता है। shape offset data()

कुंजी चूक प्रयोग
nodata_value None nodata_value विशेषता के लिए मैप किया गया
data के समान nodata_value या 0 data() विधि को पारित किया
size (with, height) रेखापुंज की data() विधि को पारित किया
shape आकार के समान data() विधि को पारित किया
offset (0, 0) data() विधि को पारित किया

GDAL के वर्चुअल फाइलसिस्टम का उपयोग करना

जीडीएएल में एक आंतरिक मेमोरी-आधारित फाइल सिस्टम है, जो फाइलों के रूप में मेमोरी के ब्लॉक का इलाज करने की अनुमति देता है। इसका उपयोग GDALRaster बाइनरी फ़ाइल बफ़र से और उससे ऑब्जेक्ट को पढ़ने और लिखने के लिए किया जा सकता है ।

यह वेब संदर्भों में उपयोगी है, जहां एक दूरस्थ भंडारण से एक बफर के रूप में चूहों को प्राप्त किया जा सकता है या डिस्क से लिखे बिना एक दृश्य से वापस आ सकता है।

GDALRaster जब bytes ऑब्जेक्ट किसी इनपुट के रूप में प्रदान किया जाता है, या जब फ़ाइल पथ के साथ शुरू होता है तो वर्चुअल फ़ाइल सिस्टम में ऑब्जेक्ट बनाए जाते हैं /vsimem/

इनपुट के रूप bytes में प्रदान की गई एक फ़ाइल का पूर्ण बाइनरी प्रतिनिधित्व होना चाहिए। उदाहरण के लिए:

# 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'

स्क्रैच से एक नया आभासी फ़ाइल-आधारित रेखापुंज बनाने के लिए, ds_input शब्दकोश प्रतिनिधित्व का उपयोग करें और एक name तर्क प्रदान करें जो /vsimem/ (शब्द प्रतिनिधित्व के विस्तार के लिए, डेटा से रेखांकन बनाना देखें )। वर्चुअल फ़ाइल-आधारित रेखापुंजों के लिए , vsi_buffer विशेषता bytes रेखापुंज का प्रतिनिधित्व लौटाती है ।

यहाँ एक रेखापुंज बनाने और इसे एक फ़ाइल के रूप में वापस करने का तरीका बताया गया है 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')

सेटिंग्स

GDAL_LIBRARY_PATH

GDAL लाइब्रेरी के स्थान को निर्दिष्ट करने वाला एक तार। आमतौर पर, यह सेटिंग केवल तभी उपयोग की जाती है जब GDAL लाइब्रेरी एक गैर-मानक स्थान (जैसे /home/john/lib/libgdal.so ) में हो।

अपवाद

exception GDALException

बेस GDAL अपवाद, GDAL- संबंधित त्रुटि को दर्शाता है।

exception SRSException

एक स्थानिक संदर्भ प्रणाली ऑब्जेक्ट का निर्माण या उपयोग करते समय एक त्रुटि होने पर उठाया गया अपवाद।

Original text