Spec-Zone.ru › Django 1.8

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 используется в качестве оболочки для драйвера OGR DataSource.

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API