readEcostressSig

Считайте данные из спектральной библиотеки ECOSTRESS

Описание

пример

libData = readEcostressSig(filenames) считывает спектральные данные из заданных файлов спектра ECOSTRESS.

Функция поддерживает только файлы спектра ECOSTRESS. Все входы должны быть текстовыми файлами с суффиксом spectrum.txt.

пример

libData = readEcostressSig(dirname) считывает спектральные данные из файлов спектра ECOSTRESS, хранящихся в указанной директории.

пример

libData = readEcostressSig(dirname,keyword) считывает спектральные данные только из файлов спектра ECOSTRESS, хранящихся в указанной директории, с заданным ключевым словом в именах их файлов.

Примечание

Эта функция требует библиотеки Image Processing Toolbox™ гиперспектральной визуализации. Можно установить библиотеку Image Processing Toolbox Hyperspectral Imaging Library из Add-On Explorer. Дополнительные сведения об установке дополнений см. в разделе Получение и управление Дополнений.

Примеры

свернуть все

Задайте имена файлов спектра, которые будут считываться из спектральной библиотеки ECOSTRESS в качестве массива ячеек из векторов символов.

ecostressfiles = [{'soil.utisol.hapludult.none.all.87p707.jhu.becknic.spectrum.txt'},...
             {'water.seawater.none.liquid.tir.seafoam.jhu.becknic.spectrum.txt'},...
             {'vegetation.tree.eucalyptus.maculata.vswir.jpl087.jpl.asd.spectrum.txt'},...
             {'manmade.road.tar.solid.all.0099uuutar.jhu.becknic.spectrum.txt'}];

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

libData = readEcostressSig(ecostressfiles)
libData=1×4 struct array with fields:
    Name
    Type
    Class
    SubClass
    ParticleSize
    Genus
    Species
    SampleNo
    Owner
    WavelengthRange
    Origin
    CollectionDate
    Description
    Measurement
    FirstColumn
    SecondColumn
    WavelengthUnit
    DataUnit
    FirstXValue
    LastXValue
    NumberOfXValues
    AdditionalInformation
    Wavelength
    Reflectance
      ⋮

Извлеките детали спектральных данных второго файла из массива структур.

libData(2)
ans = struct with fields:
                     Name: "Sea Foam"
                     Type: "Water"
                    Class: "Sea Water"
                 SubClass: "none"
             ParticleSize: "Liquid"
                    Genus: [0x0 string]
                  Species: [0x0 string]
                 SampleNo: "seafoam"
                    Owner: "Dept. of Earth and Planetary Science, John Hopkins University"
          WavelengthRange: "TIR"
                   Origin: "JHU IR Spectroscopy Lab."
           CollectionDate: "N/A"
              Description: "Sea foam water. Original filename FOAM Original ASTER Spectral Library name was jhu.becknic.water.sea.none.liquid.seafoam.spectrum.txt"
              Measurement: "Directional (10 Degree) Hemispherical Reflectance"
              FirstColumn: "X"
             SecondColumn: "Y"
           WavelengthUnit: "micrometer"
                 DataUnit: "Reflectance (percent)"
              FirstXValue: "14.0112"
               LastXValue: "2.0795"
          NumberOfXValues: "2110"
    AdditionalInformation: "none"
               Wavelength: [2110x1 double]
              Reflectance: [2110x1 double]

Извлеките отражение и значения длины волны из спектральных данных второго файла.

reflectance = libData(2).Reflectance;
wavelength = libData(2).Wavelength;

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

figure
plot(wavelength,reflectance)
title(['Spectra of ' libData(2).Name])
xlabel('Wavelength')
ylabel('Reflectance Value')

Figure contains an axes. The axes with title Spectra of Sea Foam contains an object of type line.

Укажите полный путь к директории, содержащему файлы спектра ECOSTRESS.

fileroot = matlabshared.supportpkg.getSupportPackageRoot();
dirname = fullfile(fileroot,'toolbox','images','supportpackages','hyperspectral','hyperdata','ECOSTRESSSpectraFiles');

Чтение и отображение спектральных данных из всех файлов в директории. Функция возвращает массив структур с строкой для каждого файла спектра ECOSTRESS в указанной директории.

libData = readEcostressSig(dirname)
libData=1×15 struct array with fields:
    Name
    Type
    Class
    SubClass
    ParticleSize
    Genus
    Species
    SampleNo
    Owner
    WavelengthRange
    Origin
    CollectionDate
    Description
    Measurement
    FirstColumn
    SecondColumn
    WavelengthUnit
    DataUnit
    FirstXValue
    LastXValue
    NumberOfXValues
    AdditionalInformation
    Wavelength
    Reflectance
      ⋮

Извлеките детали спектральных данных 15-го файла.

libData(15)
ans = struct with fields:
                     Name: "Tap water"
                     Type: "Water"
                    Class: "Tap Water"
                 SubClass: "none"
             ParticleSize: "Liquid"
                    Genus: [0×0 string]
                  Species: [0×0 string]
                 SampleNo: "tapwater"
                    Owner: "Dept. of Earth and Planetary Science, John Hopkins University"
          WavelengthRange: "All"
                   Origin: "JHU IR Spectroscopy Lab. Original filename TAPWATER."
           CollectionDate: "N/A"
              Description: "Tap water. Original ASTER Spectral Library name was jhu.becknic.water.tap.none.liquid.tapwater.spectrum.txt"
              Measurement: "Directional (10 Degree) Hemispherical Reflectance"
              FirstColumn: "X"
             SecondColumn: "Y"
           WavelengthUnit: "micrometer"
                 DataUnit: "Reflectance (percent)"
              FirstXValue: "14.0110"
               LastXValue: "0.4000"
          NumberOfXValues: "2844"
    AdditionalInformation: "none"
               Wavelength: [2844×1 double]
              Reflectance: [2844×1 double]

Укажите полный путь к директории, содержащему файлы спектра ECOSTRESS.

fileroot = matlabshared.supportpkg.getSupportPackageRoot();
dirname = fullfile(fileroot,'toolbox','images','supportpackages','hyperspectral','hyperdata','ECOSTRESSSpectraFiles');

Чтение и отображение спектральных данных файлов спектра ECOSTRESS с определенным ключевым словом в именах их файлов. Функция возвращает массив структур с строкой для каждого файла спектра в указанной директории с ключевым словом в именах их файлов.

keyword = 'water';
libData = readEcostressSig(dirname,keyword)
libData=1×3 struct array with fields:
    Name
    Type
    Class
    SubClass
    ParticleSize
    Genus
    Species
    SampleNo
    Owner
    WavelengthRange
    Origin
    CollectionDate
    Description
    Measurement
    FirstColumn
    SecondColumn
    WavelengthUnit
    DataUnit
    FirstXValue
    LastXValue
    NumberOfXValues
    AdditionalInformation
    Wavelength
    Reflectance
      ⋮

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

свернуть все

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

Типы данных: char | string

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

Типы данных: char | string

Ключевое слово поиска файла, заданное как вектор символов или строковый скаляр. Функция возвращает данные только из файлов спектра ECOSTRESS с заданным ключевым словом в именах их файлов. Вы не можете задать несколько ключевых слов одновременно.

Типы данных: char | string

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

свернуть все

Спектральные данные из файлов ECOSTRESS, возвращенные как массив структур 1 K байта. K - количество файлов спектра, считанных функцией. Каждый элемент массива структур имеет 24 поля, которые содержат информацию заголовка файлов спектра.

Имена полейОписание
NameИмя измеренной выборки или материала
TypeТип выборки, такой как "mineral", "rock", "tree", или "manmade"
Class

Класс типа выборки

Для примера, если тип выборки "mineral" тогда класс может быть: "native elements", "silicates", "oxides", "sulfides", "sulfates", "halides", "carbonates", "phosphates", или "mineraloids".

SubClass

Подкласс типа выборки

Это поле содержит пустой массив или "none", если только не Type значение "mineral", "rock", "manmade", "soil", "lunar", или "meteorite".

ParticleSize

Размер частиц типа образца

Это поле содержит пустой массив, кроме Type значение "mineral", "rock", "manmade", "soil", "lunar", или "meteorite".

Genus

Род выборки

Это поле содержит пустой массив, кроме Type значение "vegetation" или "nonphotosynthetic".

Species

Виды выборки

Это поле содержит пустой массив, кроме Type значение "vegetation" или "nonphotosynthetic".

SampleNo

Номер выборки

Это значение является идентификатором для связанной выборки.

OwnerВладелец выборки
WavelengthRange

Область значений длин волн измеренной выборки

Значение должно быть "All", "TIR", или "VSWIR".

OriginРасположение, из которого были получены данные
CollectionDate

Дата, на которую был собранная выборка

Это значение в mm/dd/yy формат.

Description

Описание измеренной выборки

Это поле предоставляет дополнительную информацию о характеристиках выборки.

MeasurementСпектральный режим измерения, используемый для измерения выборки
FirstColumnПервый столбец значений данных в файле спектра
SecondColumnВторой столбец значений данных в файле спектра
WavelengthUnit

Измерительные модули для спектральных длин волн выборок

Значение для каждого типа выборки "micrometer". Это поле соответствует X Units поле данных заголовка в файле спектра ECOSTRESS.

DataUnit

Модуль режима спектральных измерений

Спектральный режим измерения включает отражающую способность, пропускающую способность, транзитность и передачу. Единица модуля - процент. Это поле соответствует Y Units поле данных заголовка в файле спектра ECOSTRESS.

FirstXValueПервое значение в первом столбце значений данных в файле спектра
LastXValueПоследнее значение в первом столбце значений данных в файле спектра
NumberofXValuesОбщее количество значений данных в первом столбце файла спектра
AdditionalInformation

Дополнительная информация о выборке

Это поле включает информацию, которая не является частью спектральных данных.

WavelengthЗначения длины волны, при которых измерялись отражения
ReflectanceЗначения отражательной способности, измеренные на каждой длине волны

Ссылки

[1] Meerdink, Susan K., Simon J. Hook, Dar A. Roberts и Elsa A. Abbott. «Спектральная библиотека ECOSTRESS версии 1.0». Дистанционное зондирование окружения 230 (сентябрь 2019): 111196. https://doi.org/10.1016/j.rse.2019.05.015.

[2] Загрузите спектральную библиотеку ECOSTRESS: https://speclib.jpl.nasa.gov/download

См. также

| | |

Введенный в R2020a