Этот пример показывает, как анализировать результаты логических манипуляций с сетками определить область, удовлетворяющую одно или несколько условий (или закодированный как 1 с или выражение, которое приводит к логическому значению 1). Функция areamat
может обеспечить дробную площадь поверхности на земном шаре, сопоставленном с 1 с в логической сетке. Каждый элемент сетки является четырехугольником, и сумма областей, удовлетворяющих логическому условию, обеспечивает общую площадь.
Загрузите данные и используйте topo сетку и большее - чем оператор отношения, чтобы определить, какая часть Земли находится над уровнем моря. Ответ составляет приблизительно 30%. (Обратите внимание на то, что контактные площадки ниже уровня моря исключены.)
load topo
R = georefcells(topolatlim,topolonlim,size(topo))
R = GeographicCellsReference with properties: LatitudeLimits: [-90 90] LongitudeLimits: [0 360] RasterSize: [180 360] RasterInterpretation: 'cells' ColumnsStartFrom: 'south' RowsStartFrom: 'west' CellExtentInLatitude: 1 CellExtentInLongitude: 1 RasterExtentInLatitude: 180 RasterExtentInLongitude: 360 XIntrinsicLimits: [0.5 360.5] YIntrinsicLimits: [0.5 180.5] CoordinateSystemType: 'geographic' AngleUnit: 'degree'
a = areamat((topo>0),R)
a = 0.2890
По умолчанию возвращаемое значение нормировано относительно площади поверхности сферы. Можно получить ненормированный результат путем обеспечения ссылочного сфероида как третьего входа. В этом случае устройство вывода будет квадратом единицы длины ссылочного сфероида. Например, если ссылочный сфероид будет в километрах, вывод будет в квадратных километрах.
sphericalEarth = referenceSphere('earth','km'); a = areamat((topo>0),R,sphericalEarth)
a = 1.4739e+08
Используйте коды сетки данных usamtx
, чтобы найти область определенного состояния в США. Как пример, определите область Техаса, который закодирован как 46 в сетке usamtx
.
load usamtx a = areamat((map==46),refvec,referenceSphere('earth','km'))
a = 6.2528e+05
Вычислите, какой фрагмент контактной площадки совпадающих США, которые занимает Техас (вода и граничащие страны закодированы с 2 и 3, соответственно). Это указывает, что Техас занимает примерно 7,35% контактной площадки США
usaland = areamat((map>3|map==1), refvec); texasland = areamat((map==46), refvec); texasratio = texasland/usaland
texasratio = 0.0735