Несколько участков внутри, если условие R - PullRequest
0 голосов
/ 07 февраля 2019

Я использую условие if для обработки некоторых данных и создания трех разных графиков, которые отображаются в Viewer

if (S2_input){
      S2_images<-stack(S2_rsp)
      S2_images
      cubeView(S2_images)

      # Plot True/False color
      viewRGB(S2_images, 3,2,1, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik"))
      viewRGB(S2_images, 4,3,2, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik"))
}

, где S2_images равно:

> S2_images
class       : RasterStack 
dimensions  : 660, 1074, 708840, 30  (nrow, ncol, ncell, nlayers)
resolution  : 10, 10  (x, y)
extent      : 219800, 230540, 4097480, 4104080  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=30 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 
names       : L2A_T30ST//51_B02_10m, L2A_T30ST//51_B03_10m, L2A_T30ST//51_B04_10m, L2A_T30ST//51_B08_10m, L2A_T30ST//51_B11_20m, L2A_T30ST//51_B12_20m, L2A_T30ST//21_B02_10m, L2A_T30ST//21_B03_10m, L2A_T30ST//21_B04_10m, L2A_T30ST//21_B08_10m, L2A_T30ST//21_B11_20m, L2A_T30ST//21_B12_20m, L2A_T30ST//51_B02_10m, L2A_T30ST//51_B03_10m, L2A_T30ST//51_B04_10m, ... 
min values  :                     1,                   127,                     6,                     1,                    88,                    86,                     1,                     1,                     1,                     1,                     1,                     1,                    50,                   198,                     7, ... 
max values  :                  8702,                  9090,                  7589,                  7322,                  5379,                  5474,                  8743,                  9298,                  7585,                  8530,                  5712,                  5905,                  8048,                  7692,                  7187, ... 

Проблема заключается в том, что когда я запускаю полный if статус, в средстве просмотра отображается только последний viewRGB.Есть идеи, как создать их все внутри условия?

1 Ответ

0 голосов
/ 07 февраля 2019

Как вы можете видеть здесь Печать 'Hello world' n раз в R , R показывает только последнюю инструкцию внутри цикла, поэтому решением вашей проблемы может быть обертывание ваших карт внутри print() так:

if (S2_input){
      S2_images<-stack(S2_rsp)
      S2_images
      cubeView(S2_images)

      # Plot True/False color
      print(viewRGB(S2_images, 3,2,1, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik")))
      viewRGB(S2_images, 4,3,2, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik"))
}

ИЛИ

if (S2_input){
      S2_images<-stack(S2_rsp)
      S2_images
      cubeView(S2_images)

      # Plot True/False color
      print(viewRGB(S2_images, 3,2,1, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik")))
      print(viewRGB(S2_images, 4,3,2, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik")))
}

ИЛИ вы также можете построить вектор карт:

if (S2_input){
      S2_images<-stack(S2_rsp)
      S2_images
      cubeView(S2_images)

      # Plot True/False color
      v <-c(viewRGB(S2_images, 3,2,1, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik")),viewRGB(S2_images, 4,3,2, map.types=c("Esri.WorldTopoMap", "Esri.WorldImagery", "OpenStreetMap.Mapnik")))
      v
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...