shaperead

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

Описание

пример

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

пример

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

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

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

Примеры

свернуть все

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

S = shaperead('concord_hydro_line.shp')
S=237×1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    LENGTH

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

bbox = [2.08 9.11; 2.09 9.12] * 1e5;
S = shaperead('concord_roads','BoundingBox',bbox,...
              'Attributes',{'STREETNAME','CLASS'})
S=87×1 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=115×1 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])

Укажите, что файл форм использует координаты широты и долготы с помощью 'UseGeoCoords' пара "имя-значение".

Например, возвратите информацию о файле форм как структура. Проверьте, что файл форм использует координаты широты и долготы путем запроса CoordinateReferenceSystem поле . Файл форм использует координаты широты и долготы, если поле содержит geocrs объект.

info = shapeinfo('landareas.shp');
crs = info.CoordinateReferenceSystem
crs = 
  geocrs with properties:

             Name: "WGS 84"
            Datum: "World Geodetic System 1984"
         Spheroid: [1x1 referenceEllipsoid]
    PrimeMeridian: 0
        AngleUnit: "degree"

Считайте файл форм при помощи shaperead функция. Укажите, что файл форм использует координаты широты и долготы с помощью 'UseGeoCoords' пара "имя-значение".

S = shaperead('landareas.shp','UseGeoCoords',true)
S=537×1 struct array with fields:
    Geometry
    BoundingBox
    Lon
    Lat
    Name

Обратите внимание на то, что shaperead функция возвращает географическую структуру данных с полями широты и долготы (geostruct).

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

свернуть все

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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. Для получения дополнительной информации об указателях на функцию, см. Создание указателя на функцию.

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

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

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

Чтобы определить, использует ли файл форм данные о широте и долготе, сначала используйте shapeinfo функционируйте, чтобы возвратить информацию о файле форм как структура. Затем запросите CoordinateReferenceSystem поле структуры. Файл форм использует географические координаты если CoordinateReferenceSystem geocrs объект.

Этот код показывает, как запросить CoordinateReferenceSystem поле структуры сопоставило с файлом форм landareas.shp.

info = shapeinfo('landareas.shp');
info.CoordinateReferenceSystem

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

свернуть все

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

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

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

Советы

Чтобы получить информацию о системе координат (CRS), сопоставленной с файлом форм, используйте shapeinfo функция.

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