コード例 #1
0
ファイル: alertmap.py プロジェクト: ibrahim85/alertmap
def getTimeExposure(timegriddata,mmigrid,popfile,mmithresh):
    timegrid = GMTGrid()
    timegrid.griddata = timegriddata.copy()
    timegrid.geodict = mmigrid.geodict.copy()
    popgrid = EsriGrid(popfile)
    popgrid.load(bounds=timegrid.getRange())
    timegrid.interpolateToGrid(popgrid.geodict)
    timegrid.griddata[mmigrid.griddata < mmithresh] = np.NaN
    times = np.arange(MINTIME,MAXTIME+DTIME,DTIME)
    exposure = []
    mintime = MINTIME
    ireal = np.isfinite(timegrid.griddata)
    for time in times[1:]:
        ipop = ((timegrid.griddata >= mintime) & (timegrid.griddata < time) & np.isfinite(timegrid.griddata))
        exposum = int(np.sum(popgrid.griddata[ipop]))
        exposure.append({'mintime':mintime,'maxtime':time,'exposure':exposum})
        mintime = time
    return (exposure,timegrid.griddata)
コード例 #2
0
ファイル: travel.py プロジェクト: ibrahim85/alertmap
def readTimeGrid(timefile):
    stkeys = [
        'TOTALROWBYTES', 'NBITS', 'LAYOUT', 'YDIM', 'NCOLS', 'BANDROWBYTES',
        'PIXELTYPE', 'XDIM', 'NROWS', 'NBANDS', 'ULXMAP', 'ULYMAP', 'BYTEORDER'
    ]
    src = rasterio.open(timefile, 'r', driver='EHdr')
    timedata, = src.read()
    m, n = timedata.shape
    aff = src.affine
    xdim = aff[0]
    xmin = aff[2]
    ydim = -aff[4]
    ymax = aff[5]
    src.close()
    timegrid = GMTGrid()
    timegrid.griddata = timedata
    timegrid.geodict = {
        'nrows': m,
        'ncols': n,
        'nbands': 1,
        'bandnames': ['Alert Time'],
        'xmin': xmin,
        'xmax': xmin + n * xdim,
        'ymin': ymax - m * ydim,
        'ymax': ymax,
        'xdim': xdim,
        'ydim': ydim
    }

    timepath, timefile = os.path.split(timefile)
    timebase, timext = os.path.splitext(timefile)
    timehdr = os.path.join(timepath, timebase + '.hdr')
    timedict = readTimeHeader(timehdr)
    for key in stkeys:
        timedict.pop(key)
    for key, value in timedict.iteritems():
        if isinstance(value, str):
            timedict[key] = value.replace('"', '')
    return (timegrid, timedict)