Запишите файл 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 в рабочую область.
infilename = 'boston.tif';
[A,R] = geotiffread(infilename);
Получите метаданные из файла. Вы передаете это в новую версию BigTIFF файла.
info = geotiffinfo(infilename);
Извлеките значение GeoKeyDirectoryTag
поле от info
структура возвращена geotiffinfo
. Установите значение двух тегов TIFF, которые задают длину и ширину мозаик.
geoTags = info.GeoTIFFTags.GeoKeyDirectoryTag; tiffTags = struct('TileLength',1024,'TileWidth',1024);
Запишите данные в новый файл GeoTIFF, с помощью параметра TiffType, чтобы задать формат файла как 'bigtiff'
. Включайте geoTags
информация и tiffTags
в метаданных в новом файле.
outfilename = 'boston_bigtiff.tif'; geotiffwrite(outfilename,A,R,'GeoKeyDirectoryTag',geoTags, ... 'TiffType','bigtiff','TiffTags',tiffTags)
Считайте данные из сервера 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 Спроектированная Система координат.
coordRefSysCode = 26986; filename = 'concord_ortho.tif'; geotiffwrite(filename, X, R, 'CoordRefSysCode', coordRefSysCode);
Отобразите карту.
figure mapshow(filename)
Считайте файл GeoTIFF.
[A, R] = geotiffread('boston.tif');
Задайте подмножество данных, которые вы хотите записать.
m = size(A,1);
n = 1024;
firstrow = m-n+1;
lastrow = m;
firstcol = 1;
lastcol = n;
subImage = A(firstrow:lastrow, firstcol:lastcol, :);
xi = [firstcol - .5, lastcol + .5];
yi = [firstrow - .5, lastrow + .5];
[xlimits, ylimits] = intrinsicToWorld(R, xi, yi);
subR = R;
subR.RasterSize = size(subImage);
subR.XLimWorld = sort(xlimits);
subR.YLimWorld = sort(ylimits);
info = geotiffinfo('boston.tif');
Запишите подмножество в файл.
filename = 'boston_subimage.tif'; geotiffwrite(filename, subImage, subR, ... 'GeoKeyDirectoryTag', info.GeoTIFFTags.GeoKeyDirectoryTag); figure mapshow(filename);
В этом примере показано, как записать данные о ландшафте SDTS DEM Горы Вашингтон в GeoTIFF. На данные ссылаются к Universal, поперечной меркаторской (UTM), Зона 19, в североамериканской Данной величине 1 927. Это соответствует номеру кода GeoTIFF PCS_NAD27_UTM_zone_19N 26719. Установите растровую интерпретацию на 'регистрации', потому что данными является USGS DEM. Это соответствует растровому типу GeoTIFF PixelIsPoint.
Считайте данные SDTS DEM.
[Z, refmat] = sdtsdemread('9129CATD.ddf'); R = refmatToMapRasterReference(refmat, size(Z), 'postings'); key.GTModelTypeGeoKey = 1; % Projected Coordinate System (PCS) key.GTRasterTypeGeoKey = 2; % PixelIsPoint key.ProjectedCSTypeGeoKey = 26719; filename = '9129.tif'; geotiffwrite(filename, Z, R, 'GeoKeyDirectoryTag', key);
Постройте схему Нью-Гемпшира в UTM.
S = shaperead('usastatelo', 'UseGeoCoords', true, 'Selector',... {@(name) any(strcmp(name,{'New Hampshire'})), 'Name'}); proj = geotiffinfo(filename); [x, y] = projfwd(proj, [S.Lat], [S.Lon]); figure mapshow(x,y)
Отобразите файл GeoTIFF DEM.
hold on h = mapshow(filename, 'DisplayType', 'surface'); demcmap(get(h,'ZData'))
В этом примере показано, как считать файл, содержащий метаданные RPC, измените файл, и затем запишите файл, включая метаданные RPC в новом файле. Чтобы проиллюстрировать этот процесс, пример сначала создает демонстрационный файл TIFF, содержащий Метаданные RPC.
Создайте демонстрационный файл TIFF с метаданными RPC
Создайте демонстрационный тестовый файл TIFF, содержащий метаданные 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)
Считайте метаданные и данные изображения из демонстрационного файла TIFF
Считайте метаданные и данные изображения от тестового файла. geotiffinfo
возвращает метаданные RPC в поле GeoTIFFTags возвращенной структуры.
info = geotiffinfo('myfile'); [imagedata, R] = geotiffread('myfile');
Запишите модифицированные данные изображения и метаданные RPC к файлу
Сначала измените данные изображения, считанные из файла. Например, установите все пиксели с нулевым знаком на 1 в изображении.
imagedata(imagedata==0)= 1;
Запишите модифицированное изображение в файл, наряду с метаданными RPC из исходного файла.
geotiffwrite('myfile2',imagedata,R,... 'RPCCoefficientTag',info.GeoTIFFTags.RPCCoefficientTag)
В этом примере показано, как записать содействующие метаданные 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.UnknownTags
ans = struct with fields:
ID: 50844
Offset: 10672
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.RPCCoefficientTag
ans = 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-by-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'
соответственно.
X
— Индексируемое изображениеИндексируемые данные изображения, заданные как M-by-N числовая матрица.
Типы данных: uint8
| uint16
cmap
палитраКарта цветов сопоставила с индексируемым изображением X
, заданный как c-by-3 числовая матрица. Существует c, раскрашивает карту цветов, каждый представленный красным, зеленым, и синим пиксельным значением.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'CoordRefSysCode',26986
'CoordRefSysCode'
— Код системы координат
(значение по умолчанию) | положительное целое число | представляет скаляр в виде строки | вектор символовКод системы координат для координат данных, заданных как разделенная запятой пара, состоящая из 'CoordRefSysCode'
и положительное целое число, представьте в виде строки скаляр или вектор символов. Можно задать координаты или в географическом или в спроектированной системе координат. Если вы задаете систему координат со скаляром строки или вектором символов, включаете 'EPSG:'
префикс. Смотрите Советы для ссылки на Спецификацию GeoTiff или файлы данных EPSG (pcs.csv
и gcs.csv
) для номеров кода.
Если вы задаете обоих 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
географический объект растровой привязки или refvec, и вы задаете ProjectedCSTypeGeoKey
поле или вы устанавливаете GTModelTypeGeoKey
поле к 1 (спроектированная система координат), вы получаете ошибку. Аналогично, если R
объект растровой привязки карты, и вы не задаете ProjectedCSTypeGeoKey
поле или CoordRefSysCode
, или GTModelTypeGeoKey
поле установлено в 2 (географическая система координат), вы получаете сообщение об ошибке.
'RPCCoefficientTag'
— Тег Рациональных полиномиальных коэффициентов (RPC)RPCCoefficientTag
объект Значения для дополнительного тега TIFF RPC, заданного как разделенная запятой пара, состоящая из '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'
значение для спроектированных систем координат
Геополе ключа называет для 'GeoKeyDirectoryTag'
Можно также получить 'CoordRefSysCode'
значения из файлов данных EPSG (pcs.csv
и gcs.csv
) в папке:
matlabroot/toolbox/map/mapproj/projdata/epsg_csv
RPCCoefficientTag
| Tiff
| geotiffinfo
| geotiffread
| imread
| imwrite
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.