本文主要介绍DLA Ganos如何加载PolarDB中的栅格数据。

操作步骤

  1. 初始化Spark Session
     val spark: SparkSession = {
        val session = SparkSession.builder
          .master("local[*]")
          .withKryoSerialization
          .config(additionalConf)
          .getOrCreate()
        session
      }
    
     //加载DLA Ganos Raster驱动。
     spark.withGanosRaster
  2. 初始化连接参数
    val options = Map(
        "url" -> "jdbc:postgresql://121.43.235.228:5432/ganos_demodb",
        "user" -> "postgres",
        "password" -> "Ganos@2020",
        "dbtable" -> "gf",
        "numPartitions" -> "4")val options = Map(
        "url" -> "jdbc:postgresql://121.43.235.228:5432/ganos_demodb",
        "user" -> "postgres",
        "password" -> "Ganos@2020",
        "dbtable" -> "gf",
        "numPartitions" -> "4")
  3. 加载CataLog
     val cat = spark.read.ganos.polardbRasterCatalog(options)
  4. 输出结果如下12

    CataLog中包含各个图层的id和其他元数据信息,支持时空查询。

    • 您可以通过指定ID和Zoom(默认z=0,即最底层金字塔)加载对应的图层:
      val layer = spark.read.ganos.polardbRasterImage(options).load(id, zoom)
      1
      注意 多波段影像会自动拆分为多个单波段Tile进行展示。
    • 您也可以通过图层id集合批量加载图层:
      val layers = spark.read.ganos.polardbRasterCover(options).load(Seq[id], zoom)