GDAL API
GDAL означает Библиотеку абстракции геопространственных данных и представляет собой настоящий «многофункциональный инструмент» для работы с данными ГИС. Подмножество GDAL — OGR, библиотека простых объектов, специализирующаяся на чтении и записи векторных географических данных в различных стандартных форматах.
GeoDjango предоставляет высокоуровневый Python-интерфейс для некоторых возможностей OGR, включая чтение и преобразование координат векторных пространственных данных.
Примечание
Несмотря на то, что модуль называется gdal, GeoDjango поддерживает лишь некоторые возможности OGR. Таким образом, функции GDAL, связанные с растровыми (изображениями) данными, в настоящее время минимально поддерживаются (только чтение).
Обзор
Примерные данные
Инструменты GDAL/OGR, описанные здесь, предназначены для помощи в чтении ваших геопространственных данных. Для большей части их полезности вам потребуются данные. Если вы только начинаете и у вас пока нет собственных данных, в тестах GeoDjango содержатся несколько наборов простых данных, которые вы можете использовать для тестирования. Вы можете загрузить их здесь:
$ wget https://raw.githubusercontent.com/django/django/master/tests/gis_tests/data/cities/cities.{shp,prj,shx,dbf}
Объекты источников векторных данных
DataSource
DataSource — это оболочка для объекта источника данных OGR, которая поддерживает чтение данных из различных поддерживаемых OGR геопространственных форматов файлов и источников данных с помощью простого и согласованного интерфейса. Каждый источник данных представлен объектом DataSource, который содержит один или несколько слоёв данных. Каждый слой, представленный объектом Layer, содержит определённое количество географических объектов (Feature), информацию о типе объектов, содержащихся в этом слое (например, точки, полигоны и т. д.), а также имена и типы любых дополнительных полей (Field) данных, которые могут быть связаны с каждым объектом в этом слое.
-
class DataSource(ds_input, encoding='utf-8') -
Конструктор
DataSourceтребует только одного параметра: путь к файлу, который вы хотите прочитать. Однако OGR также поддерживает различные более сложные источники данных, включая базы данных, к которым можно получить доступ, передав строку специального имени вместо пути. Дополнительную информацию см. в документации по форматам векторных данных OGR. СвойствоnameэкземпляраDataSourceвозвращает имя OGR основного источника данных, который он использует.Необязательный параметр
encodingпозволяет указать нестандартную кодировку строк в источнике. Это обычно полезно, когда при чтении значений полей возникают исключенияDjangoUnicodeDecodeError.После создания
DataSource, вы можете узнать количество слоёв данных, обратившись к свойствуlayer_countили (эквивалентно) используя функциюlen(). Сведения об обращении к самим слоям данных см. в следующем разделе:>>> 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, который по сути является стандартным Python-контейнером объектовLayer. Например, вы можете получить доступ к определённому слою по его индексу (например,ds[0]для доступа к первому слою) или вы можете перебирать все слои в контейнере в цикле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, загруженного выше, который, очевидно, содержит один слой под названием
"cities", содержащий три точечных объекта. Для простоты в примерах ниже предполагается, что вы сохранили этот слой в переменнойlayer:>>> layer = ds[0]
-
name
Возвращает имя этого слоя в источнике данных.
>>> layer.name 'cities'
-
num_feat
Возвращает количество объектов в слое. То же, что и
len(layer):>>> layer.num_feat 3
-
geom_type
Возвращает тип геометрии слоя как объект
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, связанное с этим слоем:>>> 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.-
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. В противном случае они возвращаются как объекты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','SequentialWrite','RandomWrite','FastSpatialFilter','FastFeatureCount','FastGetExtent','CreateField','Transactions','DeleteFeature', и'FastSetNextByIndex'. -
Feature
-
class Feature -
Featureоборачивает объект OGR-признак. Вы никогда не создаёте объектFeatureнапрямую. Вместо этого, вы получаете их из объектаLayer. Каждый признак состоит из геометрии и набора полей, содержащих дополнительные свойства. Геометрия поля доступна через свойствоgeom, которое возвращает объектOGRGeometry. ОбъектFeatureведет себя как стандартный контейнер Python для своих полей, которые он возвращает как объектыField: вы можете получить доступ к полю напрямую по его индексу или имени, или вы можете перебирать поля признака, например, в циклеfor.-
geom
Возвращает геометрию для этого признака в виде объекта
OGRGeometry:>>> city.geom.tuple (-104.609252, 38.255001)
-
get
Метод, который возвращает значение заданного поля (указанного по имени) для этого признака, а **не** объект-обёртку
Field:>>> city.get('Population') 102121-
geom_type
Возвращает тип геометрии для этого признака в виде объекта
OGRGeomType. Это будет тем же для всех признаков в данном слое и эквивалентно свойствуLayer.geom_typeобъектаLayer, из которого был получен признак.-
num_fields
Возвращает количество полей данных, связанных с признаком. Это будет тем же для всех признаков в данном слое и эквивалентно свойству
Layer.num_fieldsобъектаLayer, из которого был получен признак.-
fields
Возвращает список имён полей данных, связанных с признаком. Это будет тем же для всех признаков в данном слое и эквивалентно свойству
Layer.fieldsобъекта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()
Возвращает значение поля как double (float):
>>> 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используется в качестве оболочки для драйвера OGRDataSource.-
driver_count
Возвращает количество зарегистрированных в данный момент драйверов OGR для векторных данных.
-
OGR Геометрии
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 Geometry. Эти объекты создаются непосредственно из заданного параметра
geom_input, который может быть строкой, содержащей WKT, HEX, GeoJSON,buffer, содержащий данные WKB, или объектOGRGeomType. Эти объекты также возвращаются атрибутомFeature.geomпри чтении векторных данных изLayer(который, в свою очередь, является частьюDataSource).-
classmethod from_bbox(bbox)
Создаёт
Polygonиз заданного прямоугольника (четверки чисел).-
__len__()
Возвращает количество точек в
LineString, количество колец вPolygonили количество геометрий вGeometryCollection. Не применимо к другим типам геометрий.-
__iter__()
Итерируется по точкам в
LineString, кольцам вPolygonили геометриям вGeometryCollection. Не применимо к другим типам геометрий.-
__getitem__()
Возвращает точку по указанному индексу для
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.-
geom_name
Возвращает имя типа этой геометрии:
>>> polygon.geom_name 'POLYGON'
-
area
Возвращает площадь этой геометрии или 0 для геометрий, не содержащих площади:
>>> polygon.area 25.0
-
envelope
Возвращает охватывающую область этой геометрии в виде объекта
Envelope.-
extent
Возвращает охватывающую область этой геометрии как четверку чисел, а не как объект
Envelope:>>> point.extent (0.0, 0.0, 5.0, 5.0)
-
srs
Этот свойство контролирует систему пространственной привязки для этой геометрии, или
Noneесли система пространственной привязки не была назначена. Если назначено, доступ к этому свойству возвращает объектSpatialReference. Его можно установить другим объектомSpatialReferenceили любым входным значением, которое принимаетSpatialReference. Пример:>>> city.geom.srs.name 'GCS_WGS_1984'
-
srid
Возвращает или устанавливает идентификатор пространственной привязки, соответствующий
SpatialReferenceэтой геометрии. ВозвращаетNoneесли информация о пространственной привязке не связана с этой геометрией или если SRID нельзя определить.-
geos
Возвращает объект
GEOSGeometry, соответствующий этой геометрии.-
gml
Возвращает строковое представление этой геометрии в формате GML:
>>> OGRGeometry('POINT(1 2)').gml '<gml:Point><gml:coordinates>1,2</gml:coordinates></gml:Point>'-
hex
Возвращает строковое представление этой геометрии в формате HEX WKB:
>>> OGRGeometry('POINT(1 2)').hex '0101000000000000000000F03F0000000000000040'-
json
Возвращает строковое представление этой геометрии в формате JSON:
>>> OGRGeometry('POINT(1 2)').json '{ "type": "Point", "coordinates": [ 1.000000, 2.000000 ] }'-
kml
Возвращает строковое представление этой геометрии в формате KML.
-
wkb_size
Возвращает размер буфера WKB, необходимого для хранения представления WKB этой геометрии:
>>> OGRGeometry('POINT(1 2)').wkb_size 21-
wkb
Возвращает
buffer, содержащий представление WKB этой геометрии.-
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если эта геометрия эквивалентна другой, в противном случае возвращаетFalse.-
disjoint(other)
Возвращает
Trueесли эта геометрия пространственно не пересекается с другой (т.е. не пересекается), в противном случае возвращаетFalse.-
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объект.-
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 этой точки или
Noneесли у точки нет координаты 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 в этой линии или
Noneесли у линии нет координат Z:>>> OGRGeometry('LINESTRING (1 2 3,4 5 6)').z [3.0, 6.0] -
-
class Polygon -
-
shell
Возвращает контур или внешнюю дугу этого многоугольника как геометрию
LinearRing.-
exterior_ring
Псевдоним для
shell.-
centroid
Возвращает
Point, представляющий центр масс этого многоугольника. -
-
class GeometryCollection -
-
add(geom)
Добавляет геометрию в это множество геометрий. Не применимо к другим типам геометрии.
-
OGRGeomType
-
class OGRGeomType(type_input)[source] -
Этот класс позволяет представлять тип 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
Возвращает тип поля Django (подкласс GeometryField), используемый для хранения этого типа OGR, или
Noneесли нет соответствующего типа Django:>>> gt1.django 'PolygonField'
-
Envelope
-
class Envelope(*args)[source] -
Представляет структуру OGR Envelope, содержащую минимальные и максимальные координаты X, Y для прямоугольного ограничивающего прямоугольника. Наименования переменных совместимы со структурой C OGR Envelope.
-
min_x
Значение минимальной координаты X.
-
min_y
Значение максимальной координаты X.
-
max_x
Значение минимальной координаты Y.
-
max_y
Значение максимальной координаты Y.
-
ur
Координата верхнего правого угла, как кортеж.
-
ll
Координата нижнего левого угла, как кортеж.
-
tuple
Кортеж, представляющий прямоугольник.
-
wkt
Строка, представляющая этот прямоугольник в формате WKT.
-
expand_to_include(*args)[source]
-
Объекты систем координат
SpatialReference
-
class SpatialReference(srs_input) -
Объекты пространственной привязки инициализируются на основе заданной
srs_input, которая может быть одним из следующих:- OGC Well Known Text (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если узел не существует. Также может принимать кортеж в качестве параметра (target, child), где child — индекс атрибута в WKT. Например:>>> 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'). Ключевое слово index указывает индекс дочернего узла для возврата.-
auth_name(target)
Возвращает имя авторитета для заданного целевого узла в виде строки.
-
auth_code(target)
Возвращает код авторитета для заданного целевого узла в виде строки.
-
clone()
Возвращает копию объекта пространственной привязки.
-
identify_epsg()
Этот метод проверяет WKT этой 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, если не определено.-
linear_name
Возвращает имя линейных единиц.
-
linear_units
Возвращает значение линейных единиц.
-
angular_name
Возвращает имя угловых единиц.
-
angular_units
Возвращает значение угловых единиц.
-
units
Возвращает кортеж из 2 элементов: значения единиц и их названия. Автоматически определяет, нужно возвращать линейные или угловые единицы.
-
ellipsoid
Возвращает кортеж параметров эллипсоида для этой пространственной привязки: (большая полуось, малая полуось и обратное сжатие).
-
semi_major
Возвращает большую полуось эллипсоида для этой пространственной привязки.
-
semi_minor
Возвращает малую полуось эллипсоида для этой пространственной привязки.
-
inverse_flattening
Возвращает обратное сжатие эллипсоида для этой пространственной привязки.
-
geographic
Возвращает
True, если эта пространственная привязка географическая (корневой узел являетсяGEOGCS).-
local
Возвращает
True, если эта пространственная привязка локальная (корневой узел являетсяLOCAL_CS).-
projected
Возвращает
True, если эта пространственная привязка является проекционной системой координат (корневой узел является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, который содержит один или несколько слоёв данных, называемых полосами. Каждая полоса, представленная объектом GDALBand, содержит геореференцированные данные изображения. Например, изображение RGB представлено тремя полосами: одной для красного, одной для зеленого и одной для синего.
-
class GDALRaster(ds_input) -
Конструктор
GDALRasterпринимает единственный параметр: путь к файлу, который вы хотите прочитать.-
name -
Имя источника, которое эквивалентно пути к входному файлу.
-
driver -
Имя драйвера GDAL, используемого для обработки входного файла. Например,
GTiffдля файлаGeoTiff. См. также список Форматы растровых данных GDAL.
-
width -
Ширина источника в пикселях (ось X).
-
height -
Высота источника в пикселях (ось Y).
-
srs -
Система пространственной привязки источника, как экземпляр
SpatialReference.
-
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).
-
origin -
Координаты левого верхнего угла растра в системе пространственной привязки источника, как объект точки с
xиyчленами.
-
scale -
Ширина и высота пикселей, используемые для геопривязки растра, как объект точки с
xиyчленами. См.geotransformдля получения дополнительной информации.
-
skew -
Коэффициенты наклона, используемые для геопривязки растра, как объект точки с
xиyчленами. В случае изображений с направлением «север наверх» эти коэффициенты оба0.
-
extent -
Пределы (предельные значения) источника растра, как кортеж из 4 значений
(xmin, ymin, xmax, ymax)в системе пространственной привязки источника.
-
bands -
Список всех полос источника, как экземпляры
GDALBand.
-
GDALBand
-
class GDALBand -
Экземпляры
GDALBandне создаются явно, а скорее получаются из объектаGDALRasterчерез его атрибутbands.-
description -
Имя или описание полосы, если таковое имеется.
-
width -
Ширина полосы в пикселях (ось X).
-
height -
Высота полосы в пикселях (ось Y).
-
min -
Минимальное значение пикселя полосы (исключая значение «нет данных»).
-
max -
Максимальное значение пикселя полосы (исключая значение «нет данных»).
-
nodata_value -
Значение «нет данных» для полосы обычно представляет собой специальное маркерное значение, используемое для маркировки пикселей, которые не являются действительными данными. Такие пиксели, как правило, не должны отображаться и не должны вносить вклад в операции анализа.
-
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.
-
Настройки
GDAL_LIBRARY_PATH
Строка, указывающая расположение библиотеки GDAL. Как правило, эта настройка используется только в том случае, если библиотека GDAL находится в нестандартном расположении (например, /home/john/lib/libgdal.so).
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/ref/contrib/gis/gdal/