shaperead

Считайте векторные функции и атрибуты из файла форм

Синтаксис

S = shaperead(filename)
S = shaperead(filename,Name,Value)
[S,A] = shaperead(___)

Описание

пример

S = shaperead(filename) читает файл форм, filename, и возвращает N-by-1 географический массив структуры данных в спроектированных координатах карты (mapstruct). Географическая структура данных объединяется геометрический и информация атрибута функции. shaperead поддерживает обычные 2D типы формы: 'Point', 'Multipoint', 'PolyLine' и 'Polygon'.

пример

S = shaperead(filename,Name,Value) возвращает подмножество содержимого файла форм в S, как определено аргументами пары "имя-значение". Используйте RecordNumbers, BoundingBox и Selector, чтобы выбрать который функции читать. Если вы используете больше чем один из этих параметров в том же вызове, вы получаете пересечение записей, которые совпадают с отдельными спецификациями. Например, если вы задаете значения и для RecordNumbers и для BoundingBox, вы импортируете только те функции с номерами записи, которые появляются в вашем списке и которые также имеют ограничительные рамки, пересекающие заданную ограничительную рамку.

Если вы не задаете параметров, shaperead возвращает запись для каждой непустой функции и создает поле для каждого атрибута.

[S,A] = shaperead(___) возвращает N-by-1 географический массив структуры данных, S, содержа геометрические данные и параллельный N-by-1 массив структур атрибута, A, содержа информацию атрибута функции.

Примеры

свернуть все

Считайте целый файл форм concord_roads.shp, включая атрибуты в concord_roads.dbf. Функция shaperead возвращает mapstruct с векторами координаты X и Y.

S = shaperead('concord_roads.shp')
S = 609x1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    RT_NUMBER
    CLASS
    ADMIN_TYPE
    LENGTH

Задайте ограничительную рамку, чтобы ограничить данные, возвращенные shaperead. Кроме того, задайте имена атрибутов, которые вы хотите считать.

bbox = [2.08 9.11; 2.09 9.12] * 1e5;
S = shaperead('concord_roads','BoundingBox',bbox,...
              'Attributes',{'STREETNAME','CLASS'})
S = 87x1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    CLASS

Считайте дорожные данные только для класса 4 и более высокие дорожные сегменты, которые составляют по крайней мере 200 метров в длине. Отметьте использование анонимной функции в селекторе.

S = shaperead('concord_roads.shp','Selector',...
           {@(v1,v2) (v1 >= 4) && (v2 >= 200),'CLASS','LENGTH'})
S = 115x1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    RT_NUMBER
    CLASS
    ADMIN_TYPE
    LENGTH

Определите количество дорог каждого класса.

n = histcounts([S.CLASS],'BinLimits',[1 7],'BinMethod','integer')
n = 1×7

     0     0     0     7    93    15     0

Отобразите гистограмму количества дорог, которые падают в каждой категории длины.

figure
histogram([S.LENGTH])

Считайте файл форм глобальных названий города и местоположений, данных в широте и долготе. Отметьте, как shaperead возвращает geostruct, потому что вы задали параметр 'UseGeoCoords'.

S = shaperead('worldcities.shp', 'UseGeoCoords', true)
S = 318x1 struct array with fields:
    Geometry
    Lon
    Lat
    Name

Входные параметры

свернуть все

Имя файла, заданное как скаляр строки или вектор символов. filename относится к базовому имени или полному имени одного из файлов компонента в файле форм. Если основной файл (с расширением.shp) отсутствует, shaperead выдает ошибку. Если любой из других файлов отсутствует, shaperead выдает предупреждение.

Убедитесь, что ваша машина установлена в ту же схему кодировки символов как данные, которые вы импортируете. Например, при попытке импортировать файл форм, который содержит японские символы, сконфигурируйте свою машину, чтобы поддержать схему кодирования Shift-JIS.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Attributes',{'STREETNAME','LENGTH'}

Номера записи, заданные как пара, разделенная запятой, состоящая из 'RecordNumbers' и вектор целых чисел. Используйте параметр RecordNumbers, чтобы импортировать только функции с перечисленными номерами записи.

Типы данных: double

Ограничительная рамка, заданная как пара, разделенная запятой, состоящая из 'BoundingBox' и матрицы 2 на 2. BoundingBox имеет форму [xmin,ymin;xmax,ymax] для координат карты или [lonmin,latmin;lonmax,latmax] для географических координат. Используйте параметр BoundingBox, чтобы импортировать только функции, ограничительные рамки которых пересекают заданное поле. Функция shaperead не обрезает функции, которые частично пересекают поле.

Типы данных: double

Селектор, заданный как пара, разделенная запятой, состоящая из 'Selector' и массива ячеек, содержащего указатель на функцию и одно или несколько названий атрибута. Функция должна возвратить скаляр logical. Используйте параметр Selector, чтобы импортировать только функции, для которых функция, когда применено соответствующие значения атрибута, возвращает true. Для получения дополнительной информации об указателях на функцию, см. Создание указателя на функцию (MATLAB).

Названия атрибута, заданные как пара, разделенная запятой, состоящая из 'Attributes' и массив ячеек названий атрибута. Используйте параметр Attributes, чтобы включать перечисленные атрибуты и установить порядок атрибутов в массиве структур. Используйте {}, чтобы не использовать все атрибуты.

Отметьте, чтобы возвратить содержимое файла форм в геоstruct, заданном как пара, разделенная запятой, состоящая из 'UseGeoCoords' и false или true.

Когда UseGeoCoords установлен в true, содержимое файла форм возвращено в геоstruct. Используйте этот параметр, когда вы знаете, что x-и координаты y-в файле форм на самом деле представляют данные о долготе и широте. Если вы не знаете, работаете ли вы с географическим или сопоставляете координаты, смотрите Mapstructs и Geostructs.

Выходные аргументы

свернуть все

Векторные географические особенности, возвращенные как N-by-1, сопоставляют географический массив структуры данных. Если UseGeoCoords не является true, S является mapstruct и содержит элемент для каждой непустой, пространственной функции в файле форм.

Покажите информацию атрибута, возвращенную как N-by-1 массив структур атрибута, соответствующий массиву S.

Поля в выходных массивах структур S и A зависят от типа формы, содержавшейся в файле и именах и типах атрибутов, включенных в файл. Функция shaperead поддерживает следующие четыре типа атрибута: numeric и floating (сохраненный как тип double в MATLAB®) и character и date (сохраненный как char array).

Представлено до R2006a