Example #1
0
        daout = []

        #sfc
        u = data[var_sfc[0]].values
        v = data[var_sfc[1]].values
        attrs_u = data[var_sfc[0]].attrs
        attrs_v = data[var_sfc[1]].attrs
        #missing values need to be searched
        dfu = data[var_sfc[0]].to_pandas()
        dfv = data[var_sfc[1]].to_pandas()
        if (dfu.isnull().values.sum() != 0 or dfv.isnull().values.sum() != 0):
            print("missing value exists in input")
        else:
            lon2d = lon.reshape(1, -1)
            lat2d = lat.reshape(-1, 1)
            xd, yd, zd = librotate.uv2xyzd(u, v, lon2d, lat2d)

            da_xd = xr.DataArray(xd.reshape(1,len(lat),len(lon)),\
                                 [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                                 name='xd')
            da_yd = xr.DataArray(yd.reshape(1,len(lat),len(lon)),\
                                 [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                                 name='yd')
            da_zd = xr.DataArray(zd.reshape(1,len(lat),len(lon)),\
                                 [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                                 name='zd')

            xd_interp = da_xd.interp(longitude=newlon, latitude=newlat)
            yd_interp = da_yd.interp(longitude=newlon, latitude=newlat)
            zd_interp = da_zd.interp(longitude=newlon, latitude=newlat)
            #missing value
Example #2
0
        daout = []

        #sfc
        u = data[var_sfc[0]].values
        v = data[var_sfc[1]].values
        attrs_u = data[var_sfc[0]].attrs
        attrs_v = data[var_sfc[1]].attrs
        #missing values need to be searched
        dfu = data[var_sfc[0]].to_pandas()
        dfv = data[var_sfc[1]].to_pandas()
        if (dfu.isnull().values.sum() != 0 or dfv.isnull().values.sum() != 0):
            logging.warning("missing value exists in input")
            continue
        lon2d = lon.reshape(1, -1)
        lat2d = lat.reshape(-1, 1)
        xd, yd, zd = librotate.uv2xyzd(u, v, lon2d, lat2d)
        #debug
        ud, vd = librotate.xyzd2uv(xd, yd, zd, lon2d, lat2d)
        logging.debug(f"uv2xyzd u {np.max(np.abs(u-ud))}")
        logging.debug(f"uv2xyzd v {np.max(np.abs(v-vd))}")

        da_xd = xr.DataArray(xd.reshape(1,len(lat),len(lon)),\
                            [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                            name='xd')
        da_yd = xr.DataArray(yd.reshape(1,len(lat),len(lon)),\
                            [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                            name='yd')
        da_zd = xr.DataArray(zd.reshape(1,len(lat),len(lon)),\
                            [('time',pd.date_range(date,periods=1)),('latitude',lat),('longitude',lon)],\
                            name='zd')
Example #3
0
            ('lonlat1d',np.arange(len(lattc)))],\
            attrs=attrs,name='msl')
        logging.debug(dataout)
        daout.append(dataout)
        #exit()

        #u, v
        attrs_u = data['u'].attrs
        attrs_v = data['v'].attrs
        #missing values need to be searched
        if (np.isnan(u).sum() != 0 or np.isnan(v).sum() != 0):
            logging.warning("missing value exists in input")
            continue
        lon3d = lonin[None, None, :]
        lat3d = latin[None, :, None]
        xd, yd, zd = librotate.uv2xyzd(u, v, lon3d, lat3d)
        #debug
        ud, vd = librotate.xyzd2uv(xd, yd, zd, lon3d, lat3d)
        logging.debug(f"uv2xyzd u {np.max(np.abs(u-ud))}")
        logging.debug(f"uv2xyzd v {np.max(np.abs(v-vd))}")
        xb, yb, zb = librotate.uv2xyzd(ud, vd, lon3d, lat3d)
        logging.debug(f"xyzd2uv x {np.max(np.abs(xd-xb))}")
        logging.debug(f"xyzd2uv y {np.max(np.abs(yd-yb))}")
        logging.debug(f"xyzd2uv z {np.max(np.abs(zd-zb))}")

        da_xd = xr.DataArray(xd[None,:],\
                            [('time',pd.date_range(date,periods=1)),\
                            ('level',level),\
                            ('latitude',latin),('longitude',lonin)],\
                            name='xd')
        da_yd = xr.DataArray(yd[None,:],\