Ejemplo n.º 1
0
Archivo: mrms.py Proyecto: ujjwaln/namo
def ingest(filename):

    with GdalFileHelper(filename) as gfh:
        #modis hdf file consists of subdatasets
        band_info = gfh.get_band_info(meta=settings["bands"]["meta"],
                                      band_num=0)
        nc_vars = gfh.get_nc_vars(["Ht"])
        heights = nc_vars["Ht"]

    for band_num in settings["bands"]["numbers"]:
        ras = GDALRaster(filename, settings["srid"]["in"])
        ras.set_band_num(band_num["number"])
        variable_name = band_num["name"]
        ras.nodata_value = -9999
        level = int(numpy.asscalar(heights[band_num["number"]]))
        start_time = band_info["start_time"]
        end_time = start_time + timedelta(
            seconds=settings["time_interval_seconds"])

        with SqaAccess(conn_str=config.sqa_connection_string()) as sqa:
            i = 0
            mask = sqa.one(Mask, filterr={"name": "alabama"})
            dg = upsert_datagranule(sqa,
                                    config,
                                    provider_name=settings["provider"]["name"],
                                    variable_name=variable_name,
                                    format_name=settings["format"],
                                    level=level,
                                    extent=ras.extent_ewkt(),
                                    srid=settings["srid"]["in"],
                                    start_time=start_time,
                                    end_time=end_time,
                                    grib_file_name=filename,
                                    overwrite_existing_datagranule=True,
                                    name_suffix="ext_%d" % i)

            if dg:
                block_size = 50, 50
                #sqa, config, datagranule, ras, srid_in, srid_out, block_size, mask=None
                insert_raster(sqa,
                              config=config,
                              datagranule=dg,
                              ras=ras,
                              srid_in=settings["srid"]["in"],
                              srid_out=settings["srid"]["out"],
                              block_size=block_size,
                              mask=mask)
Ejemplo n.º 2
0
def ingest(filenames):
    for filename in filenames:
        for variable_name in settings["sds"]:
            with GdalFileHelper(filename) as gfh:

                #modis hdf file consists of subdatasets
                dsn = gfh.get_sds(settings["sds"][variable_name])
                band_info = gfh.get_band_info(meta=settings["bands"]["meta"], band_num=0)

                ras = GDALRaster(dsn, settings["srid"]["in"])
                with SqaAccess(conn_str=config.sqa_connection_string()) as sqa:
                    mask = sqa.one(Mask, filterr={"name": "india"})
                    #mask = sqa.one(Mask, filterr={"name": "bareilly"})

                    dg = upsert_datagranule(sqa, config, provider_name=settings["provider"]["name"],
                        variable_name=variable_name, format_name=settings["format"], level=band_info["level"],
                        extent=ras.extent_ewkt(), srid=settings["srid"]["in"], start_time=band_info["start_time"],
                        end_time=band_info["end_time"], grib_file_name=filename, overwrite_existing_datagranule=True)

                    if dg:
                        block_size = 50, 50
                        insert_raster(sqa, config=config, datagranule=dg, ras=ras, srid_in=settings["srid"]["in"],
                                      srid_out=settings["srid"]["out"], block_size=block_size, mask=mask)
Ejemplo n.º 3
0
def ingest(filenames):
    for filename in filenames:
        for band in settings["data"]["bands"]:
            ras = GDALRaster(filename, settings["srid_in"])
            ras.set_band_num(band["number"])
            ras.nodata_value = -9999
            variable_name = band["name"]
            level = 0
            start_time = datetime(year=2010, month=1, day=1)
            end_time = datetime(year=2020, month=1, day=1)
            with SqaAccess(conn_str=config.sqa_connection_string()) as sqa:
                i = 0
                mask = sqa.one(Mask, filterr={"name": "alabama"})
                dg = upsert_datagranule(
                    sqa,
                    config,
                    provider_name=settings["provider_name"],
                    variable_name=variable_name,
                    format_name=settings["format"],
                    level=level,
                    extent=ras.extent_ewkt(),
                    srid=settings["srid_in"],
                    start_time=start_time,
                    end_time=end_time,
                    grib_file_name=filename,
                    overwrite_existing_datagranule=True,
                    name_suffix="ext_%d" % i)

                if dg:
                    block_size = 50, 50
                    insert_raster(sqa,
                                  config=config,
                                  datagranule=dg,
                                  ras=ras,
                                  settings=settings,
                                  block_size=block_size,
                                  mask=mask)