В этом примере показано, как анализировать результаты логических манипуляций с сетками определить область, удовлетворяющую одному или нескольким условиям (или закодированный как 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