Abrufen von "ST_PixelData" aus einer "ST_Raster"-Spalte in eine "ST_PixelData"-Spalte

Sie können die Funktion "ST_Raster getPixelData" verwenden, um den "ST_PixelData"-Wert aus einem "ST_Raster"-Wert zu extrahieren. Dieser Wert kann in "ST_Pixeldata" eingefügt oder in eine "ST_PixelData"-Variable abgerufen werden.

Schritte:
  1. Verwenden Sie eine SELECT-Anweisung, um den "ST_PixelData"-Wert aus "ST_Raster" abzurufen.

    Wenn Sie die SELECT-Anweisung in eine INSERT-Anweisung einfügen, wird das Ergebnis der "ST_PixelData"-Extrahierung in die angegebene Spalte eingefügt.

    In den folgenden Beispielen wird der "ST_PixelData"-Wert der obersten Ebene aus der Spalte "ST_Raster" der Tabelle "urban_area" abgerufen und in die "ST_PixelData"-Spalte (pdata) der Tabelle "pixels" eingefügt.

    Oracle

    INSERT INTO PIXELS (pdata)
    SELECT t.raster.getPixelData('level=1')
    FROM URBAN_AREA t
    WHERE t.raster.raster_id = 1;

    PostgreSQL

    INSERT INTO pixels (pdata)
    SELECT getPixelData(raster,'level=1')
    FROM urban_area
    WHERE raster_id(raster) = 1;

    SQL Server

    INSERT INTO pixels (pdata)
    SELECT raster.getPixelData('level=1')
    FROM urban_area
    WHERE raster.raster_id = 1;

    In diesen Beispielen wird "ST_PixelData" mithilfe der "ST_Raster"-Methode "getPixelData" aus der Spalte "ST_Raster" der Tabelle "urban_area" in die Variable "ST_PixelData" abgerufen.

    Oracle

    DECLARE
    p sde.st_pixeldata;
    BEGIN
     SELECT t.raster.getPixelData() INTO p
     FROM URBAN_AREA t
     WHERE t.raster.rasterid = 1;
    END;
    /

    PostgreSQL

    DROP FUNCTION IF EXISTS fetch_pixeldata();
    
    CREATE OR REPLACE FUNCTION fetch_pixeldata()
    RETURNS integer AS '
    
    DECLARE p st_pixeldata;
    BEGIN
     SELECT getPixelData(raster) INTO p
     FROM urban_area
     WHERE raster_id(raster) = 1;
    END;'
    LANGUAGE plpgsql;
     
    SELECT edit_pixeldata();
    DROP FUNCTION IF EXISTS fetch_pixeldata();

    SQL Server

    DECLARE @p ST_PIXELDATA;
    SET @p = (SELECT raster.getPixelData(NULL)
              FROM urban_area
              WHERE raster.raster_id = 1);

Verwandte Themen


7/10/2012