shapewrite

Запишите географическую векторную структуру данных в файл форм

Описание

пример

shapewrite(S,filename) написали векторные географические особенности, сохраненные в S к файлу, заданному filename в формате файла форм.

shapewrite(S,filename,'DbfSpec',dbfspec) пишет файл форм, в котором содержимым и размещением файла DBF управляет dbfspec, спецификация DBF.

Примеры

свернуть все

Импортируйте файл форм, удалите подмножество данных и запишите модифицированные данные в новый файл форм.

Получите информацию о файле форм как структура. Файл форм содержит сеть дорожных сегментов в Согласии, MA.

shapeinfo("concord_roads.shp")
ans = struct with fields:
                     Filename: [3x89 char]
                    ShapeType: 'PolyLine'
                  BoundingBox: [2x2 double]
                  NumFeatures: 609
                   Attributes: [5x1 struct]
    CoordinateReferenceSystem: [1x1 projcrs]

NumFeatures поле указывает, что файл форм содержит 609 функции.

Импортируйте файл форм как геопространственную таблицу.

GT = readgeotable("concord_roads.shp");

CLASS атрибут файла форм включает информацию о дорожных типах. Например, значение 2 указывает на многополосную магистраль и значение 6 указывает на незначительную дорогу. Создайте подтаблицу, содержащую главные дороги, таким образом что значение CLASS меньше 4.

rows = GT.CLASS < 4;
majorGT = GT(rows,:);

Экспортируйте геопространственную таблицу как файл форм.

shapewrite(majorGT,"main_concord_roads.shp")

Получите информацию о новом файле форм как структура.

shapeinfo("main_concord_roads.shp")
ans = struct with fields:
                     Filename: [3x94 char]
                    ShapeType: 'PolyLine'
                  BoundingBox: [2x2 double]
                  NumFeatures: 107
                   Attributes: [5x1 struct]
    CoordinateReferenceSystem: []

Новый файл форм имеет 107 функции вместо 609 функции.

Считайте файл форм, содержащий вектор из мировых городов. Храните данные как плоский вектор точки использование mappoint функция.

S = shaperead("worldcities.shp");
p = mappoint(S)
p = 
 318x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [-3.9509 54.7589 -0.2121 35.3894 38.7575 138.8528 44.5408 72.2474 ... ]
           Y: [5.2985 24.6525 5.6106 37.0613 9.0235 -34.6645 12.8767 22.7778 ... ]
        Name: {1x318 cell}

Добавьте Падерборн, Германия к вектору точки.

x = 51.715254;
y = 8.75213;
p = append(p,x,y,"Name","Paderborn")
p = 
 319x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [-3.9509 54.7589 -0.2121 35.3894 38.7575 138.8528 44.5408 72.2474 ... ]
           Y: [5.2985 24.6525 5.6106 37.0613 9.0235 -34.6645 12.8767 22.7778 ... ]
        Name: {1x319 cell}

Размер p увеличился на 1.

Запишите обновленный вектор точки в файл форм.

shapewrite(p,"worldcities_updated.shp")

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

свернуть все

Векторные географические особенности в виде одного из следующего:

  • Геопространственная таблица. shapewrite функция не поддерживает геопространственные таблицы, содержащие больше чем один тип объекта фигуры. Для получения дополнительной информации о геопространственных таблицах, смотрите, Составляют Геопространственные Таблицы.

  • mappoint вектор.

  • mapshape вектор.

  • Массив структур карты (mapstruct) с X и Y координатные поля.

  • geopoint вектор.

  • geoshape вектор.

  • Географический массив структур (geostruct) с Lat и Lon поля .

S имеет следующие ограничения на его поля атрибута:

  • Каждым значением поля атрибута должен быть любой действительный, конечный, скалярный double или вектор символов.

  • Тип данного атрибута должен быть сопоставимым через все функции.

  • Если S геопространственная таблица, содержащая geopointshape, geolineshape, или geopolyshape объекты, geopoint вектор, geoshape вектор, или географический массив структур, shapewrite функционируйте пишут значения широты и долготы как Y и координаты X, соответственно.

  • Если данный атрибут с целочисленным знаком для всех функций, shapewrite записи это к [basename '.dbf'] файл как целое число. Если атрибут является "не целым числом, оцененным" за какую-либо функцию, shapewrite записи это как десятичное значение фиксированной точки с шестью цифрами справа от десятичного разряда.

Имя файла и местоположение файла форм, чтобы создать в виде строкового скаляра или вектора символов. Если имя файла включает расширение файла, это должен быть '.shp' или '.SHP'. shapewrite создает три выходных файла: [basename '.shp'], [basename '.shx'], и [basename '.dbf'], где basename filename без его расширения.

Покажите атрибуты, чтобы включать в файл форм в виде скалярного MATLAB® структура, содержащая одно поле для каждого атрибута функции. Присвойте тому полю скалярную структуру со следующими четырьмя полями:

  • FieldName — Имя поля, которое будет использоваться в файле

  • FieldType — Тип поля, который будет использоваться в файле: 'N' (числовой) или 'C' Символ

  • FieldLength — Длина поля в файле, в байтах

  • FieldDecimalCount — Для числовых полей, количества цифр справа от десятичного разряда

Чтобы создать спецификацию DBF, вызвать makedbfspec и затем измените выход, чтобы удалить атрибуты или изменить FieldName, FieldLength, или FieldDecimalCount для одного или нескольких атрибутов.

Чтобы включать атрибут в выходной файл, задайте поле в dbfspec с тем же именем, когда атрибут задан в S.

Советы

  • xBASE (.dbf) технические требования файла требуют, чтобы геоstruct и mapstruct названия атрибута были усеченными к 11 символам, когда скопировано как имена полей DBF. Считайте сокращение длинными именами полей прежде, чем вызвать shapewrite. Путем выполнения этого вы делаете имена полей в файле DBF более читаемыми и стараетесь не вводить двойные названия в результате усечения.

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

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