浏览代码

adecuacion del script original

master
Mauricio Collazos 5 年前
当前提交
12ec25f92f
共有 12 个文件被更改,包括 141 次插入0 次删除
  1. 5
    0
      .gitignore
  2. 80
    0
      00-CalculosIndicesVegetacion.R
  3. 二进制
      Bandas/blue.tif
  4. 二进制
      Bandas/green.tif
  5. 二进制
      Bandas/nir.tif
  6. 二进制
      Bandas/red.tif
  7. 二进制
      Bandas/rededge.tif
  8. 9
    0
      Dockerfile
  9. 25
    0
      README.md
  10. 9
    0
      compile_docker_image.sh
  11. 11
    0
      condor.submit
  12. 2
    0
      install.R

+ 5
- 0
.gitignore 查看文件

@@ -0,0 +1,5 @@
1
+.DS_Store
2
+
3
+.log
4
+.out
5
+.err

+ 80
- 0
00-CalculosIndicesVegetacion.R 查看文件

@@ -0,0 +1,80 @@
1
+
2
+
3
+##########  GENERACION DE INDICES DE VEGETACION USADOS PARA EL 
4
+##########  CALCULO DEL RENDIMIENTO DEL CULTIVO DE ARROZ
5
+
6
+#########      GISMODEL  -   UNIVALLE
7
+
8
+#########              Mayo 2019
9
+
10
+#########    Se definen las carpetas de entrada de las bandas  
11
+#########    archivos tif de R, G, B, rededge y nir
12
+
13
+#########    Se da el path de salida en dónde quedarán los índices
14
+
15
+# Como esto no se va a ejecutar en nuestro computador local, debemos definir una manera genérica de
16
+# Decirle a R donde definir su directorio de trabajo
17
+# getwd() #      "/Users/m/Documents/2019/R-Modelación/R_projects/Eden/Eden_LPS"
18
+# setwd("/Users/m/Documents/2019/R-Modelación/R_projects/Eden/Eden_LPS/ejemplo_web1/ejemplo2/")
19
+
20
+# Asignamos los argumentos pasados al script en una variable args
21
+args <- commandArgs(TRUE)
22
+# El primer argumento pasado será el directorio de trabajo, por ejemplo
23
+# Rscript 00-CalculosIndicesVegetacion.R .
24
+setwd(args[1])
25
+library(rgdal)
26
+library(raster)
27
+
28
+carpeta_entrada='./Bandas/'
29
+carpeta_salida='./idices/'
30
+
31
+lista_datos =list.files((carpeta_entrada),pattern = '.tif')
32
+
33
+blue=raster(paste0(carpeta_entrada,lista_datos[[1]]))
34
+green=raster(paste0(carpeta_entrada,lista_datos[[2]]))
35
+nir=raster(paste0(carpeta_entrada,lista_datos[[3]]))
36
+red=raster(paste0(carpeta_entrada,lista_datos[[4]]))
37
+red_edge=raster(paste0(carpeta_entrada,lista_datos[[5]]))
38
+
39
+###   plot(blue)
40
+
41
+###CALCULANDO INDICES#########
42
+
43
+ndvi=((nir-red)/(nir+red))
44
+writeRaster(ndvi, filename=paste0(carpeta_salida,'/','ndvi.tif'), format="GTiff", overwrite=TRUE)
45
+
46
+gndvi=((nir-green)/(nir+green))
47
+writeRaster(gndvi, filename=paste0(carpeta_salida,'/','gndvi.tif'), format="GTiff", overwrite=TRUE)
48
+
49
+rvi=(nir/red)
50
+writeRaster(rvi, filename=paste0(carpeta_salida,'/','rvi.tif'), format="GTiff", overwrite=TRUE)
51
+
52
+gvi=(nir/green)
53
+writeRaster(gvi, filename=paste0(carpeta_salida,'/','gvi_1.tif'), format="GTiff", overwrite=TRUE)
54
+
55
+ngrdi=((green-red)/(green+red))
56
+writeRaster(ngrdi, filename=paste0(carpeta_salida,'/','ngrdi.tif'), format="GTiff", overwrite=TRUE)
57
+
58
+rg=(red/green)
59
+writeRaster(rg, filename=paste0(carpeta_salida,'/','rg.tif'), format="GTiff", overwrite=TRUE)
60
+
61
+ndre=((nir-red_edge)/(nir+red_edge))
62
+writeRaster(ndre, filename=paste0(carpeta_salida,'/','ndre.tif'), format="GTiff", overwrite=TRUE)
63
+
64
+sr_re=(nir/red_edge)
65
+writeRaster(sr_re, filename=paste0(carpeta_salida,'/','sr_re.tif'), format="GTiff", overwrite=TRUE)
66
+
67
+csm=(red/nir)
68
+writeRaster(csm, filename=paste0(carpeta_salida,'/','csm.tif'), format="GTiff", overwrite=TRUE)
69
+
70
+csm_re=(red_edge/nir)
71
+writeRaster(csm_re, filename=paste0(carpeta_salida,'/','csm_re.tif'), format="GTiff", overwrite=TRUE)
72
+
73
+ci_re=((nir/red_edge)-1)
74
+writeRaster(ci_re, filename=paste0(carpeta_salida,'/','ci_re.tif'), format="GTiff", overwrite=TRUE)
75
+
76
+datt=((nir-red_edge)*(nir-red))
77
+writeRaster(datt, filename=paste0(carpeta_salida,'/','datt.tif'), format="GTiff", overwrite=TRUE)
78
+
79
+sr=((1+ndvi)/(1-ndvi))
80
+writeRaster(sr, filename=paste0(carpeta_salida,'/','sr.tif'), format="GTiff", overwrite=TRUE)

二进制
Bandas/blue.tif 查看文件


二进制
Bandas/green.tif 查看文件


二进制
Bandas/nir.tif 查看文件


二进制
Bandas/red.tif 查看文件


二进制
Bandas/rededge.tif 查看文件


+ 9
- 0
Dockerfile 查看文件

@@ -0,0 +1,9 @@
1
+FROM r-base
2
+
3
+RUN apt install -y libgdal-dev libproj-dev
4
+
5
+WORKDIR /code
6
+ADD install.R /code
7
+RUN Rscript install.R
8
+
9
+CMD ["Rscript"]

+ 25
- 0
README.md 查看文件

@@ -0,0 +1,25 @@
1
+# Calculos Indices de Vegetación
2
+
3
+Para la adecuación del Script se utiliza la [plantilla de de R para el Cluster CIBioFi](http://cibiofi.univalle.edu.co/git/lacco/plantillas-cluster/src/branch/master/docker/R/requirements)
4
+
5
+Adecuación y contenerización del script en R para cálculos de vegetación para el uso del cluster.
6
+
7
+Se modifican las dos primeras líneas, definiendo una manera de definir el directorio de trabajo como
8
+argumentos para el script.
9
+
10
+Como el script requirer de las librerías `rgdal` y `raster` las instalamos en el archivo [install.R](install.R)
11
+
12
+```R
13
+install.packages("rgdal")
14
+install.packages("raster")
15
+```
16
+
17
+Como la librería `rgdal` tiene dependencias de sistema operativo, las instalamos en el [Dockerfile](Dockerfile)
18
+
19
+```Dockerfile
20
+RUN apt install -y libgdal-dev libproj-dev
21
+```
22
+
23
+Para compilar la imagen de docker en el cluster se usa el archivo [compile_docker_image.sh](compile_docker_image.sh), exactamente como en la plantilla.
24
+
25
+Se modifica también el archivo [condor.submit](condor.submit) para definir cuales son los archivos que se deben transferir al contenedor, cuales son los argumentos que se le pasan al ejecutable `/usr/bin/Rscript` que en este caso será el nombre del script y la ruta de los datos .

+ 9
- 0
compile_docker_image.sh 查看文件

@@ -0,0 +1,9 @@
1
+#!/bin/bash
2
+
3
+if [ -z "$1" ]; then
4
+    echo "A name for the image is needed"
5
+    exit 1
6
+fi
7
+
8
+docker build -t 192.168.27.25:5000/$(whoami)/$1 .
9
+docker push 192.168.27.25:5000/$(whoami)/$1

+ 11
- 0
condor.submit 查看文件

@@ -0,0 +1,11 @@
1
+should_transfer_files = Yes
2
+when_to_transfer_output = ON_EXIT_OR_EVICT
3
+transfer_input_files = 00-CalculosIndicesVegetacion.R
4
+Universe = docker
5
+docker_image = 192.168.27.25:5000/ma0/plumber_test
6
+Executable = /usr/bin/Rscript
7
+Arguments = 00-CalculosIndicesVegetacion.R /datos/ma0/calculo_bandas
8
+Log = vegetacion_log.log
9
+Output = vegetacion_out.out
10
+Error = vegetacion_err.err
11
+Queue

+ 2
- 0
install.R 查看文件

@@ -0,0 +1,2 @@
1
+install.packages("rgdal")
2
+install.packages("raster")

正在加载...
取消
保存