コード例 #1
0
def clcindex(data, path):
    indexpath = Writefile.readxml(path, 6)
    trafficindex = [np.max(data[i], axis=0) for i in range(56)]
    fname = ['%03d' % i for i in range(3, 169, 3)]
    filetime = Znwg.znwgtime()
    Writefile.write_to_csv(indexpath, trafficindex, 'trafficindex', fname,
                           filetime)
コード例 #2
0
ファイル: wind.py プロジェクト: fourmia/learn
def press(savepath, datau, datav):
    # 计算出道路点风压大小
    mes = pd.read_csv(glovar.windpath, index_col=0)
    lon, lat = mes['Lon'], mes['Lat']  # 提取出道路坐标
    length = np.linalg.norm(mes.iloc[:, -2:], axis=1)
    ur = np.divide(mes['ur'], length)
    vr = np.divide(mes['vr'], length)
    uv = [[i, j] for i, j in zip(ur, vr)]
    latt, lonn = np.linspace(31.4, 39.4, 801), np.linspace(89.3, 103.1, 1381)
    for u, v in zip(datau, datav):
        uvalue = interp.interpolateGridData(u,
                                            latt,
                                            lonn,
                                            lat,
                                            lon,
                                            isGrid=False)
        vvalue = interp.interpolateGridData(v,
                                            latt,
                                            lonn,
                                            lat,
                                            lon,
                                            isGrid=False)
        UVvalue = [[i, j] for i, j in zip(uvalue, vvalue)]
        windcross = []
        for i, value in enumerate(UVvalue):
            datas = np.cross(uv, np.array(value).T)
            w = 1 / 2 * 1.29 * (np.square(datas)) * 1000
            w = np.piecewise(w, [
                w < 83, (w >= 83) & (w < 134), (w >= 134) & (w < 602),
                (w >= 602) & (w < 920), w >= 920
            ], [1, 2, 3, 4, 5])
            windcross.append(w[np.newaxis, :])
    Writefile.write_to_csv(savepath, windcross, 'windindex', glovar.fnames,
                           glovar.filetime)
コード例 #3
0
def stagnant(savepath, predepth, zdata):
    # 得到道路积水深度数据
    data = zdata
    rdata = np.nan_to_num(data[:56])
    mes = pd.read_csv(glovar.roadpath, index_col=0)
    stationlon, stationlat = mes['Lon'].values, mes['Lat'].values  # 提取出道路坐标
    datas = FloodModel.cal2(rdata, predepth)

    #data = FloodModel.cal2(data, dr)
    # 此处需要加快速度,插值到道路点的速度过慢
    roadpoint = [
        interp.grid_interp_to_station([glovar.longrid, glovar.latgrid, data],
                                      stationlon, stationlat) for data in datas
    ]
    result = np.nan_to_num(roadpoint)
    result[result < 0] = 0
    flooding_index = np.piecewise(result, [
        result <= 0.4,
        (result > 0.4) & (result <= 1.0), (result > 1.0) & (result <= 1.5),
        (result > 1.5) & (result <= 2.0), result > 2.0
    ], [1, 2, 3, 4, 5])

    Writefile.write_to_csv(savepath, flooding_index, 'floodindex',
                           glovar.fnames, glovar.filetime)
    return roadpoint
コード例 #4
0
def write(path, data, name, lat=None, lon=None, type=0):
    filetime = ecmwf.ecreptime()
    fh = range(3, 169, 3)
    fnames = ['_%03d' % i for i in fh]
    if type == 0:
        Writefile.write_to_nc(path, data, lat, lon, name, fnames, filetime)
    else:
        Writefile.write_to_csv(path, data, name, fnames, filetime)
コード例 #5
0
ファイル: snow.py プロジェクト: fourmia/learngit
 def write(self, data, lat=None, lon=None, type=0):
     filetime = ecmwf.ecreptime()
     fh = range(3, 169, 3)
     fnames = ['_%03d' % i for i in fh]
     name = 'Snow'
     if type == 0:
         Writefile.write_to_nc(self.savepath, data, lat, lon, name, fnames,
                               filetime)
     else:
         Writefile.write_to_csv(self.indexpath, data, 'SnowIndex', fnames,
                                filetime)