Запись файла GeoTIFF
geotiffwrite(___, записывает изображение или сетку данных с одним или несколькими Name,Value)Name,Value парные аргументы, управляющие различными характеристиками выходного файла.
Чтение изображения JPEG из файла.
basename = 'boston_ovr'; imagefile = [basename '.jpg']; RGB = imread(imagefile);
Извлеките имя файла мира из имени файла изображения, прочитайте файл мира и создайте объект пространственной ссылки.
worldfile = getworldfilename(imagefile);
R = worldfileread(worldfile, 'geographic', size(RGB));Запись данных изображения и ссылок на данные в файл GeoTIFF.
filename = [basename '.tif'];
geotiffwrite(filename, RGB, R)Создайте пустые оси карты и отобразите карту.
figure usamap(RGB, R) geoshow(filename)

Преобразование классического файла TIFF с географической привязкой в файл BigTIFF с плиткой путем извлечения информации из классического файла TIFF. Сначала импортируйте классическое изображение TIFF Бостона и объект ссылки на ячейки карты. Получение метаданных из файла с помощью geotiffinfo.
infilename = 'boston.tif';
[A,R] = readgeoraster(infilename);
info = geotiffinfo(infilename);Укажите теги для включения в файл BigTIFF с мозаикой. Для этого извлеките тег каталога GeoKey из метаданных. Затем создайте теги, задающие длину и ширину плиток.
geoTags = info.GeoTIFFTags.GeoKeyDirectoryTag; tiffTags = struct('TileLength',1024,'TileWidth',1024);
Запишите данные в новый файл GeoTIFF. Укажите формат файла как BigTIFF с помощью 'TiffType' пара имя-значение. Включить теги, указав 'GeoKeyDirectoryTag' и 'TiffTags' пары имя-значение.
outfilename = 'boston_bigtiff.tif'; geotiffwrite(outfilename,A,R,'TiffType','bigtiff', ... 'GeoKeyDirectoryTag',geoTags, ... 'TiffTags',tiffTags)
Убедитесь, что вы написали файл BigTIFF, прочитав файл и запросив теги.
biginfo = geotiffinfo(outfilename); biginfo.GeoTIFFTags.GeoKeyDirectoryTag
ans = struct with fields:
GTModelTypeGeoKey: 1
GTRasterTypeGeoKey: 1
ProjectedCSTypeGeoKey: 26986
PCSCitationGeoKey: 'State Plane Zone 2001 NAD = 83'
ProjLinearUnitsGeoKey: 9003
t = Tiff(outfilename);
getTag(t,'TileLength')ans = 1024
getTag(t,'TileWidth')ans = 1024
close(t)
Считывание данных с сервера WMS.
nasaLayers = wmsfind('nasa', 'SearchField', 'serverurl'); layerName = 'bluemarbleng'; layer = refine(nasaLayers, layerName, 'SearchField', 'layername', ... 'MatchType', 'exact'); [A, R] = wmsread(layer(1));
Запись данных в файл GeoTIFF.
filename = [layerName '.tif'];
geotiffwrite(filename, A, R)
Просмотр данных в файле.
figure
worldmap world
geoshow(filename)

Прочитайте два смежных ортофота и объедините их.
X_west = imread('concord_ortho_w.tif'); X_east = imread('concord_ortho_e.tif'); X = [X_west X_east];
Создайте ссылочные объекты для ортофотов и для их комбинации.
R_west = worldfileread('concord_ortho_w.tfw', 'planar', size(X_west)); R_east = worldfileread('concord_ortho_e.tfw', 'planar', size(X_east)); R = R_west; R.XLimWorld = [R_west.XLimWorld(1) R_east.XLimWorld(2)]; R.RasterSize = size(X);
Запишите комбинированное изображение в файл GeoTIFF. Используйте кодовый номер (26986), указывающий PCS_NAD83_Massachusetts Спроецированную систему координат (Projected Coordinate System).
coordRefSysCode = 26986; filename = 'concord_ortho.tif'; geotiffwrite(filename, X, R, 'CoordRefSysCode', coordRefSysCode);
Отображение карты.
figure mapshow(filename)

Импорт изображения GeoTIFF и отображение ссылочного объекта ячеек для области вокруг Бостона с помощью readgeoraster.
[A,RA] = readgeoraster('boston.tif');Обрезать данные до пределов, указанных в xlimits и ylimits использование mapcrop.
xlimits = [764318 767678]; ylimits = [2951122 2954482]; [B,RB] = mapcrop(A,RA,xlimits,ylimits);
Получение информации об изображении GeoTIFF с помощью geotiffinfo. Извлеките тег каталога GeoKey из информации.
info = geotiffinfo('boston.tif');
key = info.GeoTIFFTags.GeoKeyDirectoryTag;Запишите обрезанные данные и тег каталога GeoKey в файл. Убедитесь, что обрезанные данные записаны в файл, отображая его.
filename = 'boston_subimage.tif'; geotiffwrite(filename,B,RB,'GeoKeyDirectoryTag',key) figure mapshow(filename)

Запишите в файл GeoTIFF данные об отметке для области вокруг Южного Боулдера в Колорадо. Сначала импортируйте данные фасада и объект ссылки на географические проводки.
[Z,R] = readgeoraster('n39_w106_3arc_v2.dt1','OutputType','double');
Укажите информацию о теге каталога GeoKey для файла GeoTIFF в качестве структуры. Укажите, что данные находятся в географической системе координат, указав GTModelTypeGeoKey поле 2. Укажите, что ссылочный объект использует проводки (а не ячейки), указав GTRasterTypeGeoKey поле 2. Укажите, что данные привязаны к географической системе координат, указав GeographicTypeGeoKey поле 4326.
key.GTModelTypeGeoKey = 2; key.GTRasterTypeGeoKey = 2; key.GeographicTypeGeoKey = 4326;
Запишите данные и тег каталога GeoKey в файл.
filename = 'southboulder.tif'; geotiffwrite(filename,Z,R,'GeoKeyDirectoryTag',key)
Убедитесь, что данные записаны в файл, отображая их на карте.
usamap([39 40],[-106 -105]) g = geoshow(filename,'DisplayType','mesh'); demcmap(g.CData)

Данные о высотах, используемые в этом примере, предоставлены Геологической службой США.
Создайте образец файла TIFF с метаданными RPC. Для этого создайте массив нулей и связанный объект ссылки.
A = zeros(180,360); latlim = [-90 90]; lonlim = [-180 180]; RA = georefcells(latlim,lonlim,size(A));
Затем создайте RPCCoefficientTag и задайте некоторые поля с типовыми значениями. RPCCoefficientTag объект представляет метаданные RPC в удобочитаемой форме.
rpctag = map.geotiff.RPCCoefficientTag; rpctag.LineOffset = 1; rpctag.SampleOffset = 1; rpctag.LineScale = 2; rpctag.SampleScale = 2; rpctag.GeodeticHeightScale = 500;
Запишите изображение, связанный ссылочный объект и RPCCoefficientTag объект к файлу.
geotiffwrite('myfile',A,RA,'RPCCoefficientTag',rpctag)
В этом примере показано, как записать метаданные коэффициента RPC в файл TIFF. В реальном рабочем процессе метаданные коэффициента RPC создаются в соответствии со спецификацией расширения TIFF. В этом примере не показаны особенности создания допустимых метаданных RPC. Для моделирования необработанных метаданных RPC в примере создается образец файла TIFF с метаданными RPC, а затем используется imfinfo для чтения метаданных RPC в необработанной необработанной форме из файла. Затем этот пример записывает необработанные метаданные RPC в файл с помощью geotiffwrite функция.
Создание необработанных метаданных коэффициента RPC
Для моделирования необработанных метаданных RPC создайте простой тестовый файл и запишите некоторые метаданные RPC в файл. Для этого тестового файла создайте игрушечное изображение и ссылочный объект, связанный с изображением.
myimage = zeros(180,360); latlim = [-90 90]; lonlim = [-180 180]; R = georefcells(latlim,lonlim,size(myimage));
Создание RPCCoefficientTag и задайте некоторые поля. Панель инструментов использует RPCCoefficientTag объект для представления метаданных RPC в удобочитаемой для человека форме.
rpctag = map.geotiff.RPCCoefficientTag; rpctag.LineOffset = 1; rpctag.SampleOffset = 1; rpctag.LineScale = 2; rpctag.SampleScale = 2; rpctag.GeodeticHeightScale = 500;
Запишите изображение, связанный ссылочный объект и RPCCoefficientTag объект к файлу.
geotiffwrite('myfile',myimage,R,'RPCCoefficientTag',rpctag)
Считывание необработанных метаданных коэффициента RPC
Считывание метаданных коэффициента RPC из тестового файла с помощью imfinfo функция. При обнаружении незнакомых метаданных imfinfo возвращает необработанные данные в UnknownTags поле. Обратите внимание, что UnknownTags содержит массив из 92 двойников. Это необработанные метаданные коэффициента RPC, считанные из файла в необработанном виде.
info = imfinfo('myfile.tif');
info.UnknownTagsans = struct with fields:
ID: 50844
Offset: 10676
Value: [1x92 double]
Запись необработанных метаданных RPC в файл
Запишите необработанные метаданные RPC в файл. Сначала извлеките метаданные коэффициента RPC из информационной структуры.
value = info.UnknownTags.Value;
Затем создайте RPCCoefficientTag , передавая необработанные метаданные RPC (массив из 92 двойников) в качестве аргумента.
rpcdata = map.geotiff.RPCCoefficientTag(value)
rpcdata =
RPCCoefficientTag with properties:
BiasErrorInMeters: -1
RandomErrorInMeters: -1
LineOffset: 1
SampleOffset: 1
GeodeticLatitudeOffset: 0
GeodeticLongitudeOffset: 0
GeodeticHeightOffset: 0
LineScale: 2
SampleScale: 2
GeodeticLatitudeScale: 1
GeodeticLongitudeScale: 1
GeodeticHeightScale: 500
LineNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
LineDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
SampleNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
SampleDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Пройти RPCCoefficientTag объект для geotiffwrite и записать метаданные RPC в файл.
geotiffwrite('myfile2',myimage,R,'RPCCoefficientTag',rpcdata)
Чтобы убедиться, что данные записаны в файл, прочитайте метаданные RPC из файла TIFF с помощью geotiffinfo. Сравните возвращенные метаданные RPC с метаданными, записанными в тестовый файл.
ginfo = geotiffinfo('myfile2');
ginfo.GeoTIFFTags.RPCCoefficientTagans =
RPCCoefficientTag with properties:
BiasErrorInMeters: -1
RandomErrorInMeters: -1
LineOffset: 1
SampleOffset: 1
GeodeticLatitudeOffset: 0
GeodeticLongitudeOffset: 0
GeodeticHeightOffset: 0
LineScale: 2
SampleScale: 2
GeodeticLatitudeScale: 1
GeodeticLongitudeScale: 1
GeodeticHeightScale: 500
LineNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
LineDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
SampleNumeratorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
SampleDenominatorCoefficients: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
filename - Наименование и расположение выходного файлаИмя и местоположение выходного файла, заданного как строковый скалярный или символьный вектор. Если ваш filename включает расширение, оно должно быть '.tif' или '.TIF'. Если вход, A, имеет размер не менее 160 на 160, выходной файл представляет собой мозаичный файл GeoTIFF. В противном случае geotiffwrite организует выходной файл как строки на полосу.
Типы данных: char | string
A - Изображение с географической привязкой или сетка данныхИзображение с географической привязкой или сетка данных, заданная как одно из следующих значений:
Числовая матрица M-на-N, представляющая изображение в градациях серого или сетку данных
Числовой массив M-by-N-by-P, представляющий цветное изображение, многоспектральное изображение, гиперспектральное изображение или сетку данных
Координаты A географические и в 'WGS 84' система координат, если не указано 'GeoKeyDirectoryTag' или 'CoordRefSysCode' и укажите другую систему координат.
Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64 | logical
R - Пространственная справочная информацияПространственная ссылочная информация, указанная как объект географической растровой ссылки типа GeographicCellsReference или GeographicPostingsReference, растровый ссылочный объект карты типа MapCellsReference или MapPostingsReference, ссылочную матрицу или ссылочный вектор.
При работе с координатами изображения в спроецированной системе координат и R является объектом растровой ссылки карты или ссылочной матрицей, укажите 'GeoKeyDirectoryTag' или 'CoordRefSysCode' соответственно.
geotiffwrite функция не использует информацию, содержащуюся в GeographicCRS свойства объектов географической растровой ссылки или ProjectedCRS свойства объектов растровых ссылок карты.
X - Индексированное изображениеИндексированные данные изображения, заданные как числовая матрица M-by-N.
Типы данных: uint8 | uint16
cmap - Цветовая картаЦветовая карта, связанная с индексированным изображением X, задается в виде цифровой матрицы c-by-3. На карте цветов имеются цвета c, каждый из которых представлен значением красного, зеленого и синего пикселов.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'CoordRefSysCode',26986'CoordRefSysCode' - Код системы координат4326 (по умолчанию) | положительное целое число | строковый скалярный | символьный векторКод системы координат для координат данных, указанный как разделенная запятыми пара, состоящая из 'CoordRefSysCode' и положительное целое число, строковый скаляр или символьный вектор. Координаты можно задать в географической или спроецированной системе координат. Если система координат задана со строковым скалярным или символьным вектором, включите 'EPSG:' префикс. Для поиска кодовых номеров см. реестр EPSG или спецификацию GeoTIFF в разделе Советы.
При указании обоих GeoKeyDirectoryTag и CoordRefSysCode, код системы координат в CoordRefSysCode имеет приоритет над ключом системы координат, найденным в GeoKeyDirectoryTag. Если одно значение указывает географическую систему координат, а другое - спроецированную систему координат, появляется ошибка.
Если значение для этого аргумента не указано, значением по умолчанию является 4326, указывая, что координаты географические и в 'WGS 84' географическая система координат.
Пример: 26986
Пример: 'EPSG:26986'
'GeoKeyDirectoryTag' - Тег каталога GeoKeyТег каталога GeoKey, указанный как разделенная запятыми пара, состоящая из 'GeoKeyDirectoryTag' и структуру, которая определяет систему координат и метаинформацию GeoTIFF. Структура содержит имена полей, соответствующие именам GeoKey в спецификации GeoTIFF. Имена полей не учитывают регистр. Структура может быть получена из информационной структуры GeoTIFF, возвращаемой geotiffinfo, на местах, GeoTIFFTags.GeoKeyDirectoryTag.
при указании GTRasterTypeGeoKey поле, geotiffwrite игнорирует его. Значение для этого GeoKey получено из R. При установке определенных полей GeoKeyDirectoryTag в случае несогласованности настроек появляется сообщение об ошибке. Например, если R - это объект географической растровой ссылки или ссылочный объект, и вы указываете ProjectedCSTypeGeoKey или вы устанавливаете GTModelTypeGeoKey в поле 1 (спроецированная система координат) появляется ошибка. Аналогично, если R является объектом растровой ссылки карты, и вы не указываете ProjectedCSTypeGeoKey поле или CoordRefSysCode, или GTModelTypeGeoKey установлено значение 2 (географическая система координат), выдается сообщение об ошибке.
'RPCCoefficientTag' - Тег рациональных полиномиальных коэффициентов (RPC)RPCCoefficientTag объект Значения для необязательного тега RPC TIFF, указанного как разделенная запятыми пара, состоящая из 'RPCCoefficientTag' и RPCCoefficientTag объект.
'TiffTags' - теги TIFFЗначения тегов TIFF в выходном файле, указанные как разделенная запятыми пара, состоящая из 'TiffTags' и структура. Имена полей структуры соответствуют именам тегов TIFF, поддерживаемым классом Tiff. Имена полей не учитывают регистр.
Невозможно задать большинство тегов TIFF с помощью ввода структуры.
TiffTags Исключения
BitsPerSample | SubFileType | GeoAsciiParamsTag |
SampleFormat | SubIFD | GeoDoubleParamsTag |
SamplesPerPixel | TileByteCounts | GeoKeyDirectoryTag |
StripByteCounts | TileOffsets | ModelPixelScaleTag |
StripOffsets | ImageLength | ModelTiepointTag |
ColorMap | ImageWidth | ModelTransformationTag |
Функция устанавливает несколько тегов TIFF. Имена полей, соответствующих тегу TIFF, их соответствующие значения полей, установленные функцией, их допустимые значения (если они отличаются от класса Tiff) и тип данных отмечаются в следующей таблице.
Автоматические теги TIFF
| Имя поля | Описание |
|---|---|
Compression
|
Тип сжатия изображения. Значение по умолчанию: Числовые значения, |
PhotometricInterpretation |
Тип фотометрической интерпретации. Имя поля можно сократить до |
Software | Производитель программного обеспечения файла. Значение устанавливается равным значению |
RowsPerStrip
|
Скалярное положительное целочисленное число, указывающее требуемые строки на полосу в выходном файле. Если размер A меньше |
TileWidth
|
Скалярное положительное целое число и кратное 16, определяющее ширину элементов. |
TileLength
|
Скалярное положительное целочисленное число и кратное 16, определяющее длину элементов. |
'TiffType' - Тип файла TIFF'classictiff' (по умолчанию) | 'bigtiff'Тип файла TIFF, указанный как разделенная запятыми пара, состоящая из 'TiffType' и либо 'classictiff' или 'bigtiff'. 'classictiff' значение создает классический файл TIFF. 'bigtiff' значение создает файл BigTIFF. В формате BigTIFF размер файлов может превышать 4 ГБ.
При использовании 'bigtiff' позволяет создавать файлы размером более 4 ГБ, данные, которые требуется записать, должны быть помещены в память.
При работе с координатами изображения в спроецированной системе координат и R - это объект растровой ссылки карты или ссылочная матрица, задайте GeoKeyDirectoryTag или CoordRefSysCode аргументация, соответственно.
Проверьте спецификацию GeoTIFF на наличие значений следующих параметров:
'CoordRefSysCode' значение для географических систем координат
'CoordRefSysCode' значение для проектируемых систем координат
Имена полей GeoKey для 'GeoKeyDirectoryTag'
geotiffinfo | imread | imwrite | readgeoraster | RPCCoefficientTag | Tiff
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.