def forcing_from_thredds(sites, forc_vars): """ :param sites: dict with site-name as key and list of [lat, lon] as value. .param forc_vars: list of forcing variables to be inserted as forcing :return: """ thredds_url = "http://thredds.met.no/thredds/dodsC/arome25/arome_metcoop_test2_5km_latest.nc" thredds_file = netCDF4.Dataset(thredds_url, "r") latvar = thredds_file.variables["latitude"] lonvar = thredds_file.variables["longitude"] no_points = len(sites) point_index = [tunnel_fast(latvar, lonvar, coord[0], coord[1]) for coord in sites.values()] cnc = CrocusForcing(no_points=no_points, source="arome") # init Crocus forcing file cnc.forc_time_step_v[:] = 3600.0 for point in range(no_points): for var in forc_vars: cnc.insert_arome_var(var, thredds_file.variables) # cnc.tair_v[:, point] = thredds_file.variables[cnc.crocus_arome_lut[cnc.tair_v.name]][:, 0, point_index[point][0], point_index[point][1]] time_v = thredds_file.variables["time"] cnc.time_v[:] = time_v[:] cnc.time_v.units = time_v.units cnc.close() thredds_file.close()
def forcing_from_thredds(sites, forc_vars): ''' :param sites: dict with site-name as key and list of [lat, lon] as value. .param forc_vars: list of forcing variables to be inserted as forcing :return: ''' thredds_url = "http://thredds.met.no/thredds/dodsC/arome25/arome_metcoop_test2_5km_latest.nc" thredds_file = netCDF4.Dataset(thredds_url, 'r') latvar = thredds_file.variables['latitude'] lonvar = thredds_file.variables['longitude'] no_points = len(sites) point_index = [ tunnel_fast(latvar, lonvar, coord[0], coord[1]) for coord in sites.values() ] cnc = CrocusForcing(no_points=no_points, source="arome") # init Crocus forcing file cnc.forc_time_step_v[:] = 3600.0 for point in range(no_points): for var in forc_vars: cnc.insert_arome_var(var, thredds_file.variables) #cnc.tair_v[:, point] = thredds_file.variables[cnc.crocus_arome_lut[cnc.tair_v.name]][:, 0, point_index[point][0], point_index[point][1]] time_v = thredds_file.variables['time'] cnc.time_v[:] = time_v[:] cnc.time_v.units = time_v.units cnc.close() thredds_file.close()
Author: kmunve TODO: add info as MD """ filename = "http://thredds.met.no/thredds/dodsC/arome25/arome_metcoop_test2_5km_latest.nc" ncfile = netCDF4.Dataset(filename, 'r') latvar = ncfile.variables['latitude'] lonvar = ncfile.variables['longitude'] points = {'Hemsedal': [60.86, 8.6], 'Nordøyan fyr': [64.8, 10.55] } indicies = [tunnel_fast(latvar, lonvar, coord[0], coord[1]) for coord in points.values()] #[print(coord[0], coord[1]) for coord in points.values()] print(indicies, type(indicies[0]), len(points)) # iy,ix = tunnel_fast(latvar, lonvar, 60.86, 8.6) # Hemsedal # iy,ix = tunnel_fast(latvar, lonvar, 64.8, 10.55) # Nordøyan fyr #print('Closest lat, lon: {0}, {1}; corresponding to indicies: {2}, {3}'.format(latvar[iy,ix], lonvar[iy,ix], iy, ix)) cnc = CrocusForcing(no_points=len(points)) for point in xrange(len(points)): print(point, indicies[point][0], indicies[point][1]) cnc.tair_v[:, point] = ncfile.variables['air_temperature_2m'][:, 0, indicies[point][0], indicies[point][1]] time_v = ncfile.variables['time']