Documentos de Académico
Documentos de Profesional
Documentos de Cultura
// VARIABLES
var Perro = "TOBY";
print(Meses); //Comentario
print(Java);
// Tipo string
print(_abc);
print($perro);
// Integer y double
// Boolean
print(tuVariable);
print(c41);
var a = null;
var b;
var c = "perro"*4;
var d = "perro" + 4;
print(a);
print(b);
print(c);
print(d);
// LISTAS
// No pueden tener funciones
var AA = [1,2,"g"];
print(AA);
print(abc[3][2]);
numero: 1,
letra: "a"
};
print(ObjetoUno);
var ca = {
a: 1,
b: [1,2,3,4],
c: {
t: 1,
hola: "saludos"
} // fin de c
} //fin de ca
Print(ca)
print(ca);
// Otro ejemplo
var metodoUno = {
c: [1,2,3,10],
tr: function(a,b) {
print(a+b);
} //fin de tr
}; // fin de metodoUno
print(metodoUno);
// Para ver el resultado de tr: nombreObjeto.función(argumento)
metodo.tr(4,5);
var ObjetoTres = {
letra: "a" ,
Objeto: {
t: "Pedro",
z: 9,
}; // Fin de ObjetoTres
print(ObjetoTres);
//OPERADORES
// Operadores Aritméticos
print(9+5);
print(9-5);
print(9*5);
print(9/5);
print(9%5);
//////////////////////////////////////////////////////////////////
// Operadores Relacionales
print(9>5); //true
print(9<5); //false
//////////////////////////////////////////////////////////////////
// Operadores Igualdad
print(9===5); //false
print(5===5); //true
print(9!==7); //true
//////////////////////////////////////////////////////////////////
//Operadores de Incremento/Decremento:
var i = 1;
i = i + 3;
print(i);
var a = 1;
a*= 5;
print(a);
var ccc = 1;
ccc += 10;
print(ccc);
var dd = 4;
dd ++; // Se le suma 1
print(dd);
var ee = 10;
ee --; // Se le resta 1
print(ee);
//////////////////////////////////////////////////////////////////
//Operadores Lógicos
print(" Hola, " + " soy " + nombre + " y "+ " tengo " + edad + " años");
saludar("Orlando",37);
print("Hola, soy " + nombre + " y tengo " + edad + " años");
saludo("Gokú", 30);
// Función numérica
function fun(a) {
return 4 * a; //devuelve 4
print(valor); // Sale 28
// Función caracteres
function animal(){
print("perro");
animal();
//Crea una función que use tres números enteros como argumentos
function OPERADOR(a,b,c) {
print((a+b)*c);
OPERADOR(4,5,2);
// CONDICIONALES Y LOOPS
//////////////////////////////////////////////////////////////
// if else
else {
} // fin de else
// for
print(n);
} // fin de for
print(numeros[a]);
} // fin de for
02 SHAPES en GEE
//LSIB ee.FeatureCollection("USDOS/LSIB_SIMPLE/2017"),
// Añadir polígonos
//
// country_na
// https://en.wikipedia.org/wiki/List_of_FIPS_country_codes
Map.centerObject(ecuador);
var ap =ee.FeatureCollection("WCMC/WDPA/current/polygons");
var ap_ecuador=ap.filter(ee.Filter.bounds(ecuador.geometry() ) );
.filter(ee.Filter.eq("country_na", "Paraguay"));
//nombre (argumento)
function buff(f) {
} // Fin de function
Map.centerObject(paraguay);
// https://en.wikipedia.org/wiki/ISO_3166-3
.filter(ee.Filter.eq("ISO3","ARG"));
//var grandes
//var np
print("Cuántos áreas protegidas son parques nacionales (Cat. II) ", np.size() );
Map.centerObject(ap_arg );
Map.centerObject(grandes );
Map.centerObject(np);
.filter(ee.Filter.eq('ISO3', 'VEN'));
ap_ven.reduceColumns({
reducer: ee.Reducer.sum(),
selectors: ['GIS_AREA']
}));
ap_ven.reduceColumns({
reducer: ee.Reducer.sum().repeat(2)}));
ap_ven.reduceColumns({
reducer: ee.Reducer.count().group({
groupField: 1,
groupName: 'IUCN',
}) //Fin de .group
}));
ap_ven.reduceColumns({
reducer: ee.Reducer.mean(),
selectors: ['GIS_AREA']
}));
// DEM
// Buscar srtm
// Obtener pendiente
// (la tasa máxima de cambio de valor del DEM de un pixel con respecto a sus vecinos)
Map.addLayer(aspecto, {min: 0,
max: 360,
palette: [
]},"Aspecto");
Map.addLayer(pendiente, {
min: 0,
max: 90,
palette: [
]},"Pendiente");
// Vector a Raster
// Vector a Raster
.filter(ee.Filter.gt("GIS_AREA", 10000))
properties: ['GIS_AREA'],
});
Map.centerObject(ap_arg);
Map.addLayer(raster,
// Raster a Vector
// Cargar polígono Uruguay
var uruguay = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017')
.filter(ee.Filter.eq('country_na', 'Uruguay'));
var tc = ee.ImageCollection('MODIS/006/MOD44B')
.select('Percent_Tree_Cover').median()
.clip(uruguay);
//(en este caso filtramos los polígonos con cobertura árborea mayor a 20%)
zona = zona.updateMask(zona.neq(0));
geometry: uruguay,
crs: "EPSG:4326",
scale: 1000,
geometryType: 'polygon',
eightConnected: false,
labelProperty: 'zona',
reducer: ee.Reducer.mean()
});
Map.centerObject(vector);
Map.addLayer(vector, {},'vector');
// Exportar vector a Drive
Export.table.toDrive({
collection: vector,
description: "Export_SHP_URU",
});
Map.centerObject(distritos);
print(imgs_l8);
///////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//img_fecha
//imgs_18
var img = ee.Image(imgs_l8.sort('CLOUD_COVER').first()); //Ver linea 13
///////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// img o img_fecha
//img_fecha
Map.centerObject(geometry);
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B4','B3','B2']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B5','B4','B3']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B6','B5','B2']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B5','B6','B2']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B7','B6','B4']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B5','B6','B4']},
Map.addLayer(l8_clip, {
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B7','B6','B5']},
// De oliva a verde brillante: Oliva: zona forestales, Coníferas más oscuro que caducifolia
///////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//Export.image.toDrive({
// description: 'Landsat8_30m',
// scale: 30,
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
.filterBounds(geometry)
// Cobertura nubosa
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
//img_fecha
//var img_fecha =
ee.Image("COPERNICUS/S2/20151226T130212_20151226T130234_T24LUQ");
//imgs_18
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Map.centerObject(geometry);
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
max: 4000,
min: 0.0,
gamma: 1.0,
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
//Map.addLayer (s2_clip, {
// max: 4000,
// min: 0.0,
// gamma: 1.0,
//Considerar:
// bands: ['B4','B3','B2']}, Color Natural
// De oliva a verde brillante: Oliva: zona forestales, Coníferas más oscuro que caducifolia
///////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//Export.image.toDrive({
// image: s2_clip.select("B4", "B3", "B2"), # Configurar bien aquí: imagen y bandas
// scale: 10,
// region: geometry});
// Mosaico Sentinel Polygon
// Copernicus ya corregida
// ee.ImageCollection("COPERNICUS/S2_SR")
//Imagen SENTINEL 2
.filterBounds(geometry)
// Nubosidad
// Filtro de la mediana
Map.addLayer(s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
'Img S2');
Map.centerObject(geometry);
//ASTER
// ASTER---> Corregida y ortorectificada
.filterBounds (geometry)
Map.addLayer(mos_aster_clip, {
max: 255,
min: 0.0,
gamma: 1.0,
'Mosaico ASTER_15m');
//Export.image.toDrive({
// description: 'ASTER_15m',
// scale: 15,
// region: geometry});
////////
// BANDAS Resolution
//Seleccionar Polígono
.filterBounds(geometry);
Map.addLayer(modis_clip, {
min: 0.0,
max: 1000.0,
gamma: 2.0,
'BRDF_Albedo_Parameters_Band3_iso']},
'Imagen MODIS');
Map.centerObject(modis_clip);
//Export.image.toDrive({
// image: modis_clip.select("BRDF_Albedo_Parameters_Band1_iso",
// "BRDF_Albedo_Parameters_Band4_iso",
// "BRDF_Albedo_Parameters_Band3_iso"),
// description: 'MODIS_500m',
// scale: 500,
// region: geometry});
Map.addLayer(mos_modis_clip, {
min: 0.0,
max: 1400.0,
gamma: 2.0,
'BRDF_Albedo_Parameters_Band3_iso']},
'Mosaico MODIS');
//Export.image.toDrive({
// "BRDF_Albedo_Parameters_Band4_iso",
// "BRDF_Albedo_Parameters_Band3_iso"),
// description: 'MODIS_500m',
// scale: 500,
// region: geometry});
//Máscaras de Sentinel 2
// Copernicus ya corregida
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
////////////////////////////////////////////////////////////////////////////////////////////////////
///
function maskS2clouds(image) {
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////
// Buscar imagen
.filterDate('2018-01-01', '2018-06-30')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) //menor a 20%
// Visualización RGB
var rgb_vis = {
min: 0.0,
max: 0.3,
Map.centerObject(geometry);
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
////////////
//SENTINEL 2
////////////
.filterBounds (geometry)
Map.addLayer(s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
Map.centerObject (s2_clip);
//Export.image.toDrive({
// description: 'Sentinel2_10m',
// scale: 10,
// region: geometry});
Map.addLayer(mos_s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
//Export.image.toDrive({
// description: 'Sentinel2_10m',
// scale: 10,
// region: geometry});
05 NDVI-SERIES DE TIEMPO-REGRESIONES
//NDVI con Sentinel-2—a gee
// Copernicus ya corregida
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
// Seleccionar polígono
.filterBounds(geometry)
// Copernicus ya corregida
// ee.ImageCollection("COPERNICUS/S2_SR")
Map.centerObject(geometry);
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
///////////////
// Forma 1 NDVI
///////////////
Map.addLayer(ndvi1,
palette:['FFFFFF','CE7E45','DF923D','F1B555','FCD163','99B718','74A901',
'66A000','529400','3E8601','207401','056201','004C00','023B01',
'NDVI_1');
///////////////
// Forma 2 NDVI
///////////////
Map.addLayer(ndvi2,
{max:0.5, min:0,
palette:['FFFFFF','CE7E45','DF923D','F1B555','FCD163','99B718','74A901',
'66A000','529400','3E8601','207401','056201','004C00','023B01',
'012E01','011D01','011301']},
'NDVI_2');
//Export.image.toDrive({
// description: 'NDVI_Sentinel2_10m',
// Copernicus ya corregida
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
.filterBounds(geometry)
.map(function(image){return image.clip(geometry)});
Map.centerObject(geometry);
function addNDVI(image) {
return image.addBands(ndvi_imgs); }
// Calcular NDVI
Map.centerObject(geometry);
// Visualización RGB
max: 4000,
gamma: 1.0,
// mean Promedio
print(ui.Chart.image.series(ndvi.select('nd'), geometry)
//////////////////////////////////////////////////////////////////////
.filterBounds(geometry)
.map(function(image){return image.clip(geometry)});
Map.centerObject(geometry);
function addNDVI(image) {
return image.addBands(ndvi_imgs); }
// Calcular NDVI
Map.centerObject(geometry);
// Visualización RGB
max: 4000,
gamma: 1.0,
// median Mediana
print(ui.Chart.image.series(ndvi.select('nd'), geometry)
// ee.ImageCollection("COPERNICUS/S2_SR")--->2017-03-28T00:00:00 - 2021-04-07
.filterBounds(geometry)
Map.centerObject(geometry);
Map.addLayer (s2_clip, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
/*
Bandas Sentinel 2 (Resolución espacial)
2: Blue (10m)
3: Green (10m)
4: Red (10m)
8: NIR (10m)
*/
//////////////////////////////////
//////////////////////////////////
/*
densidades de biomasa.
var EVI = s2_clip.expression ('float (2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1)))', {
/////////////////////
/////////////////////
/*
'NIR':s2_clip.select('B8'),
'GREEN':s2_clip.select('B3')});
/////////////////////////
/////////////////////////
/*
var GLI = s2_clip.expression ('float (((GREEN - RED) + (GREEN - BLUE)) / ((2 * GREEN) + RED +
BLUE))', {
////////////////////////////////////////
////////////////////////////////////////
/*
Corrige los efectos del ruido del suelo (color del suelo, humedad del suelo,
escasa (menos del 15% del área total) y superficies expuestas del suelo. */
var SAVI = s2_clip.expression ('float (((NIR - RED) / (NIR + RED + L))* (1+L))',{
////////////////////////////////
////////////////////////////////
/*
especies de plantas
////////////////////////
////////////////////////
'NIR':s2_clip.select('B8'),
'SWIR':s2_clip.select('B11')});
/////////////////////////////////////////////
/////////////////////////////////////////////
/*
de la vegetación estresada.
////////////////////////////////////////////////////
////////////////////////////////////////////////////
/*
atmosférico (por ejemplo, lluvia, niebla, polvo, humo, contaminación del aire).*/
var ARVI = s2_clip.expression ('float ((NIR - (2 * RED) + BLUE) / (NIR + (2 * RED) + BLUE))',{
///////////////////////////////////////
///////////////////////////////////////
/*
palette:['FFFFFF','CE7E45','DF923D','F1B555','FCD163','99B718','74A901',
'66A000','529400','3E8601','207401','056201','004C00','023B01',
'012E01','011D01','011301']};
//Export.image.toDrive({
// image: EVI,
// description: 'EVI_Sentinel2_10m',
// scale: 10,
// region: geometry});
// Regresión Lineal con NDVI con Filtro País---a gee
// Regresión Lineal con NDVI con Filtro País
.filter(ee.Filter.eq('country_na', 'Bolivia'));
Map.centerObject(Bolivia);
return image.addBands(image.metadata('system:time_start')
.divide(1000*60*60*24*365));
};
.map(addTime)
.filterBounds(Bolivia);
.reduce(ee.Reducer.linearFit());
// Añadir los resultados al mapa
Map.addLayer(reg.clip(Bolivia),
bands: ['scale','scale','offset']},
// Scale es la pendiente
// offset intercepto
//is not to be confused with the scale parameter input to many reducers,
// http://www.gisandbeers.com/frames-animaciones-en-google-earth-engine/
.filterBounds (geometry) //No olvides digitalizar la zona AOI en la que estás interesado
.filterMetadata ('CLOUD_COVER', 'Less_Than', 20) //Filtra las imágenes con exceso de nubes
// Declaramos una nueva variable bajo la que realizar composiciones RGB o índices
var ComposicionRGB = {
min: 0.0,
max: 30000.0, // Juega con los valores de píxel para su representación más clara
print (AnimacionGIF);
print (FramesPelicula);
06 INTRODUCCION MACHINE LEARNING
.filterBounds(geometry)
min: 0.0,
max: 0.5,
gamma: 1.0,
bands: ['B4','B3','B2']},
'Img L8');
region: geometry,
scale: 20,
});
Map.addLayer(resultado.randomVisualizer(), {},
'Clasificación K-means');
//Export.image.toDrive({
// image: resultado,
// description: 'kmeans_img',
// scale: 20,
// region: geometry
// });
//Kmeans con Sentinel 2
//Seleccionar polígonos
.filterDate('2018-01-01', '2018-12-31')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
.filterBounds(geometry)
.map(function(image){return image.clip(geometry)})
.median();
Map.centerObject(geometry);
Map.addLayer (img, {
max: 4000,
min: 0.0,
gamma: 1.0,
bands: ['B4','B3','B2']},
region: geometry,
scale: 20,
});
// 6 grupos
Map.addLayer(resultado.randomVisualizer(), {},
'Clasificación K-means');
//Export.image.toDrive({
// image: resultado,
// description: 'kmeans_img',
// scale: 20,
// region: geometry
// });
07-Otro
imagen ( Imagen ) :
La imagen a exportar.
taskName ( Cadena , opcional ) :
Un nombre legible por humanos de la tarea. El valor predeterminado es
"myExportImageTask".
params ( Objeto , opcional ) :
Parámetros de configuración de la tarea:
crs (cadena) CRS a usar para la imagen exportada.
crs_transform (Matriz de números|cadena) Transformación afín a usar para
la imagen exportada. Requiere que se defina "crs".
dimensiones (cadena) Dimensiones que se utilizarán para la imagen
exportada. Toma un solo entero positivo como la dimensión máxima o
"ANCHOxALTO" donde ANCHO y ALTO son enteros positivos.
escala (número) Resolución en metros por píxel. El valor predeterminado es
1000.
región (coordenadas de LinearRing/Polygon|cadena) Coordenadas de un
GeoJSON LinearRing o Polygon que especifica una región para
descargar. Estos pueden especificarse como coordenadas reales o
serializarse como una cadena.
maxPixels (número) Restringe el número de píxeles en la imagen
exportada. De forma predeterminada, verá un error si su exportación supera
los 1e8 píxeles. Al establecer este valor explícitamente, puede aumentar o
disminuir este límite.
driveFolder (string) The Google Drive folder that the export will reside in.
driveFileNamePrefix (string) The Google Drive filename for the export.
Defaults to the taskName.