from scipy.interpolate import RectBivariateSpline from src.utilities import DataInput #=============================================================================== # data preparation : thklim = 200.0 # collect the raw data : #measures = DataFactory.get_ant_measures() #bedmap1 = DataFactory.get_bedmap1(thklim=thklim) #bedmap2 = DataFactory.get_bedmap2(thklim=thklim) dbv = DataInput("../results/", ("v_mag.mat", ), gen_space=False) dbv.set_data_min('v_mag', 0.0, 0.0) dbv.set_data_max('v_mag', 400.0, 400.0) #db2 = DataInput(None, bedmap2, gen_space=False) # might want to refine off of thickness : #H = db2.data['H'].copy().T # ensure that there are no values less than 1 for taking log : #vel = dsr.data['U_ob'].copy().T vel = dbv.data['v_mag'].copy().T vel += 1 # invert the sections where the velocity is low to refine at divide : data = log(vel) #mv = data.max() #k = 1
# create data objects to use with varglas : dsr = DataInput(None, searise, mesh=mesh) dbam = DataInput(None, bamber, mesh=mesh) dms = DataInput(None, measure, mesh=mesh, flip=True) dms.change_projection(dsr) # Bound data to managable values MAX_V_ERR = 500 NO_DATA = -99 MAX_V = 1e5 dbam.set_data_min('H', 200.0, 200.0) dbam.set_data_min('h', 1.0, 1.0) dms.set_data_min('sp',0.0,-1.0) dms.set_data_min('ex',-MAX_V_ERR,NO_DATA) dms.set_data_max('ex',MAX_V_ERR,NO_DATA) dms.set_data_min('ey',-MAX_V_ERR,NO_DATA) dms.set_data_max('ey',MAX_V_ERR,NO_DATA) dms.set_data_min('vx',-MAX_V,NO_DATA) dms.set_data_max('vx',MAX_V,NO_DATA) dms.set_data_min('vy',-MAX_V,NO_DATA) dms.set_data_max('vy',MAX_V,NO_DATA) print "Projecting data onto mesh..." H = dbam.get_interpolation("H",kx=1,ky=1) H0 = dbam.get_interpolation("H",kx=1,ky=1) S = dbam.get_interpolation("h",kx=1,ky=1) Herr = dbam.get_interpolation("Herr",kx=1,ky=1) adot = dsr.get_interpolation("adot",kx=1,ky=1)
var_bedmap1 = DataFactory.get_lebrocq() var_bedmap2 = DataFactory.get_bedmap2() mesh = MeshFactory.get_antarctica_coarse() flat_mesh = MeshFactory.get_antarctica_coarse() dm = DataInput(None, var_measures, mesh=mesh,flip=True) db1 = DataInput(None, var_bedmap1, mesh=mesh) db2 = DataInput(None, var_bedmap2, mesh=mesh, flip=True) thklim = 50.0 db2.set_data_min("H", thklim, thklim) db2.set_data_min("h", 0.0,0.0) db2.set_data_max("H",30000.,thklim) db2.set_data_max("h",30000.,0.0) db2.data['b'] = db2.data['h']-db2.data['H'] db1.data['srfTemp'] += 273.15 db1.data['q_geo'] *= 60**2*24*365 Surface = db2.get_spline_expression("h") Bed = db2.get_spline_expression("b") SurfaceTemperature = db1.get_spline_expression("srfTemp") BasalHeatFlux = db1.get_spline_expression("q_geo") U_observed = dm.get_spline_expression("v_mag")
bamber = DataFactory.get_bamber(thklim = thklim) searise = DataFactory.get_searise(thklim = thklim) #meas_shf = DataFactory.get_shift_gre_measures() #dbv = DataInput("../results/", ("Ubmag_measures.mat", "Ubmag.mat"), # gen_space=False) dsr = DataInput(None, searise, gen_space=False) dbm = DataInput(None, bamber, gen_space=False) #dmss = DataInput(None, meas_shf, gen_space=False) #dbv.set_data_min('Ubmag', 0.0, 0.0) #dbv.set_data_max('Ubmag', 500.0, 500.0) dsr.change_projection(dbm) dsr.set_data_min('U_ob', 0.0, 0.0) dsr.set_data_max('U_ob', 400.0, 400.0) # might want to refine off of thickness : #H = dbm.data['H'].copy().T # ensure that there are no values less than 1 for taking log : #vel = dbv.data['Ubmag'].copy().T vel = dsr.data['U_ob'].copy().T vel += 1 # invert the sections where the velocity is low to refine at divide : data = log(vel) mv = data.max() k = 1 #data[2*data < k*mv] = -data[2*data < k*mv] + k*mv
import sys import os src_directory = '../../../../' sys.path.append(src_directory) from src.utilities import DataInput, MeshGenerator from data.data_factory import DataFactory # create meshgrid for contour : vara = DataFactory.get_bamber() # process the data : dd = DataInput(None, vara, gen_space=False) dd.set_data_max('mask', 2, 0) m = MeshGenerator(dd, 'mesh', '') m.create_contour('H', 200.0, 4) #m.plot_contour() m.eliminate_intersections(dist=10) #m.plot_contour() m.write_gmsh_contour(100000, boundary_extend=False) m.extrude(100000, 10) #m.add_edge_attractor(1) #field, ifield, lcMin, lcMax, distMin, distMax #m.add_threshold(2, 1, 20000, 100000, 1, 400000) #m.finish(4) #m.create_2D_mesh('mesh') #FIXME: fails
from scipy.interpolate import RectBivariateSpline from src.utilities import DataInput # =============================================================================== # data preparation : thklim = 200.0 # collect the raw data : # measures = DataFactory.get_ant_measures() # bedmap1 = DataFactory.get_bedmap1(thklim=thklim) # bedmap2 = DataFactory.get_bedmap2(thklim=thklim) dbv = DataInput("../results/", ("v_mag.mat",), gen_space=False) dbv.set_data_min("v_mag", 0.0, 0.0) dbv.set_data_max("v_mag", 400.0, 400.0) # db2 = DataInput(None, bedmap2, gen_space=False) # might want to refine off of thickness : # H = db2.data['H'].copy().T # ensure that there are no values less than 1 for taking log : # vel = dsr.data['U_ob'].copy().T vel = dbv.data["v_mag"].copy().T vel += 1 # invert the sections where the velocity is low to refine at divide : data = log(vel) # mv = data.max() # k = 1