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)
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)
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
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)
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)