1 votos

Creación de una tabla de datos en el motor Google Earth

Quiero crear una tabla de datos que tiene sólo dos columnas, parámetros y valor, quiero obtener propiedades de características de la tabla1 y añadir propiedades y valores a la tabla, a continuación, imprimir en la consola...

Código GEE

  var table1 =ee.Feature(
          ee.Geometry.Polygon(
              [[[27.198675268206312, 41.28337381424559],
                [27.198675268206312, 41.186296803350956],
                [27.379949682268812, 41.186296803350956],
                [27.379949682268812, 41.28337381424559]]], null, false),
          {
            "system:index": "0",
            "polID": 123,
            "area": 154,
            "perimeter": 200
          });

  print(table1)

  table1.evaluate(function(dataTableClient) {
        var per= ee.Number(table1.get('perimeter'))
        var area1 =ee.Number(table1.get('area'))

        var dataTable = [
          ['Parameter', 'Value'],
          ['polygon_ID', 123],
          ['perimeter', per],
          ['area', area1],
        ];

        var chart = ui.Chart(dataTable).setChartType('Table').setOptions({
          title: 'Parcel Characteristics)',
        });
        print(chart)
  });

Cuando pruebo este código, da valores NAN... ¿Cómo se puede corregir estos valores?

enter image description here

1voto

Steve Puntos 1

De la forma en que has configurado tu ejemplo, el perímetro y el área son objetos GEE del lado del servidor y tu gráfico es del lado del cliente, por lo que necesitas obtener los valores del servidor con getInfo() :

        var per= ee.Number(table1.get('perimeter')).getInfo()
        var area1 =ee.Number(table1.get('area')).getInfo()

Tenga cuidado con getInfo en su flujo de trabajo, ya que generalmente no se recomienda su uso.

https://code.earthengine.google.com/1095f8a20034dec80d7c424f3091e054

1voto

Andre Miller Puntos 6713

He encontrado un código más sencillo, se puede adaptar para tablas de dos columnas( Código GEE ):

  var table1 =ee.Feature(
          ee.Geometry.Polygon(
              [[[27.198675268206312, 41.28337381424559],
                [27.198675268206312, 41.186296803350956],
                [27.379949682268812, 41.186296803350956],
                [27.379949682268812, 41.28337381424559]]], null, false),
          {
            "system:index": "0",
            "polID": 123,
            "area": 154,
            "perimeter": 200
          });

  print(table1)

  var Dict = table1.toDictionary()
  var keys = ee.List(Dict.keys())
  var values=ee.List(Dict.values())

  var zipped = keys.zip(values)

  // Define column names and properties for the DataTable. The order should
  // correspond to the order in the construction of the 'row' property above.
  var columnHeader = ee.List([[
    {label: 'Parameter', role: 'data', type: 'string'},
    {label: 'Value', role: 'data', type: 'string'},
  ]]);

  // Concatenate the column header to the table.
  var dataTableServer = columnHeader.cat(zipped);

  // Use 'evaluate' to transfer the server-side table to the client, define the
  // chart and print it to the console.
  dataTableServer.evaluate(function(dataTableClient) {
                var chart = ui.Chart(dataTableClient)
                .setChartType('Table')
                .setOptions({ title: 'Polygon Characteristics)'});
                print(chart)
  });

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