Skip to content

Resample SCL_20m to 10m and mask B03_10m #609

@arind123

Description

@arind123

Hi Everyone, Has anyone ever tried to mask Sentinel 2 10mt bands using SCL band 20mt. If so can someone help out with the workflow. Following is what I tried:

  • Read B03_10m
  • Read SLC_20m
  • Correct cell type of B03_10m
  • Resample SCL_20m to 10m using B03_10m tile
  • Mask B03_10m with SCL _10m

Code:

  • B03_10m = spark.read.raster("T22KGB_20190125T132231_B03_10m.tif")

  • SCL_20m = spark.read.raster("T22KGB_20190125T132231_SCL_20m.tif")

  • ct = B0310m.select(rf_cell_type('proj_raster')).distinct().first()[0]
    masked_ct = CellType(ct).with_no_data_value(-99.9)
    converted_B03_10m = B03
    10m.select("proj_raster_path",rf_convert_cell_type('proj_raster',
    masked_ct).alias('proj_raster'))

  • sqlc.registerDataFrameAsTable(SCL_20m, "SCL_20m")
    sqlc.registerDataFrameAsTable(B03_10m, "B03_10m")
    SCL_10m = sqlc.sql(""" SELECT proj_raster_path, rf_resample(proj_raster, (Select proj_raster from B03_10m), 'average') as proj_raster FROM SCL_20m """)

  • masked = converted_B03_10m.withColumn('_masked', rf_mask_by_values('proj_raster', SCL_10m.proj_raster, [0, 1, 8, 9, 10]))

But I get the following error :AnalysisException: Resolved attribute(s) proj_raster#16883 missing from proj_raster#17911 in operator !Project [proj_raster#17911, rf_mask_by_values(proj_raster#17911, proj_raster#16883, array(0, 1, 8, 9, 10)) AS _masked#17949]. Attribute(s) with the same name appear in the operation: proj_raster. Please check if the right attribute(s) are used.;

I am a newbie to Rasterframes and Spark. Would be great if someone could help me out?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions