1 votos

Definición de clases compuestas por intersección de dos imágenes ráster en el motor Google Earth

Estoy intentando crear ecorregiones mediante las intersecciones de las clases de suelo y la clasificación de la cubierta terrestre.

Idealmente me gustaría tener algo como "forest_Entisol" y "forest_Oxisol" o también "grass_Oxisol".

He intentado multiplicar así las dos imágenes clasificadas:

//import study area
var area = ee.FeatureCollection('users/jonathanreith/KK')
Map.centerObject(area,9);
//////////////////////////////SPATIAL JOIN//////////////////////////////////
var soil      = ee.Image("OpenLandMap/SOL/SOL_GRTGROUP_USDA-SOILTAX_C/v01");
var globc     = ee.Image("ESA/GLOBCOVER_L4_200901_200912_V2_3");
var ecounit = soil.add(globc);
var ecounit = ee.Image.cat([soil, globc]);
var ecounit = ecounit.select(
    ['grtgroup', 'landcover', 'qa'], // old names
    ['soil', 'landcover', 'trash']  // new names
);
var ecounit = ecounit.select('soil').multiply(ecounit.select('landcover')).rename('ecounit');
print(ecounit);

Más o menos funciona, pero no tengo ni idea de lo que hay detrás de cada valor. Además, las clases no son potencialmente únicas, porque el producto de los dos valores podría tener el mismo número que una clase original.

¿Existe una forma mejor en GEE de intersecar dos imágenes rasterizadas?

Ya he visto Intersección de imagen rasterizada en Google Earth Engine

0 votos

¿Puede facilitar dos listas en su respuesta? ¿Una con los nombres de las imágenes del suelo y otra con sus valores correspondientes? Deberían poder consultarse a través del sitio web de OpenLandMap. Los globc ya están incluidos en los metadatos.

1voto

user68792 Puntos 11

Se podría multiplicar una de las capas por un escalar grande y luego añadir la otra, lo que daría lugar a combinaciones únicas. Por ejemplo, supongamos que los valores de la cubierta terrestre oscilan entre 1-100 y multiplicas la imagen por 1,000 la nueva gama será 1,000-100,000 . Esto funciona si los valores de la capa de suelo son inferiores a 1000 .

En este ejemplo, hasta el lugar de un millar se reserva para las clases de suelo y de un millar hasta el lugar de un millón para las clases de ocupación del suelo. Por ejemplo, supongamos que la arcilla es igual a 10 y la cubierta forestal de coníferas es igual a 80 la clase resultante sería (0)80,010 .

El código sería algo así

var landcover = ecounit.select('landcover').multiply(1000);
var soil = ecounit.select('soil');

var soilLcCombo = landcover.add(soil);

He aquí un ejemplo práctico:

var nlcd = ee.Image('USGS/NLCD/NLCD2011');

var landCover = nlcd.select('landcover');
var treeCover = nlcd.select('percent_tree_cover');

var landCoverScaled = landCover.select('landcover').multiply(1000);
var lcTcCombo = landCoverScaled.add(treeCover);

Map.addLayer(landCover, {min: 0, max: 100}, 'Land cover');
Map.addLayer(treeCover, {min: 0, max: 100}, 'Tree cover');
Map.addLayer(lcTcCombo, {min: 0, max: 1e5}, 'Land cover & tree cover');

Script del editor de código

Utilice el Inspector: haga clic en una ubicación y observe el valor de la capa "Cobertura del suelo", la capa "Cobertura arbórea" y la capa "Cobertura del suelo y arbórea". El valor de "Cubierta terrestre y arbórea" contiene las clases de las otras dos, donde hasta el lugar de un millar se reserva para las clases de cubierta arbórea y de un millar hasta el lugar de un millón para las clases de cubierta terrestre.

enter image description here

0 votos

Esta respuesta sigue planteando el problema de las clases ambiguas. Por ejemplo, una clase de cobertura del suelo de 1000 y una clase de suelo de 2 darán lugar a una nueva clase de 2000, mientras que una clase de cobertura del suelo de 2000 y una clase de suelo de 1 crearán la misma clase 2000.

0 votos

No ha entendido mi respuesta. No multiplique las capas; AÑÁDALAS después de haber escalado una en un número grande. He editado mi respuesta para incluir un ejemplo de trabajo para ayudar a aclarar.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X