Определите область, занятую логической переменной сетки

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