Пример #1
0
def main():
	b0 = [-53.86014283247338, -96.55148545680116, -209.56378728526175, -329.5285447843742, -276.1078577736731, -99.4682311472077, -74.60838257235906, 103.76931702628877, 199.59759885797695, 325.49387992076936, 294.9387516971606, 190.74077827555544, 95.99117577626988, 252.4851292030383, 410.3736616110993, 500, 500, 444.71357635367707, 326.35184433516275, 223.25791552817049, 98.55471776145947, 134.18167926051117, 30.336550811088184, -88.39136174706994, -121.36948314990242, -18.45822543176338, -66.01158355801323, 52.93628093781889, -92.66509252409524, 15.70587677548626, -22.132177754463765, 6.391541935525751, -68.42339808954196, 39.59640808291448, 53.464027842215515, 136.78502122848863, 254.14520471035019, 192.5665648106059, 65.30439277418417, 14.10079843084735, -114.02424000705798, -289.4634592194706, -303.0305745281302, -266.62019841090347, -198.4732468197231, -210.421471160374, -143.2408448139692, -66.7972463258127, -18.769521382966776, 46.9742033841991, 105.26603075720368, 164.98279637713722, -43.50064538327361, -79.11047511726842, -3.8891318593645394, 12.390579201231496, -59.56957705146683, 0]
	base = tools.load_nolan_bedrock()
	bed = map(operator.add, base, b0)
	gps_surf = tools.load_first_guess_surface()
	run = basic_model.isothermalISM(58, 1000, .0015,.0005,.00022, bed[:])
	ff = FitnessFunction()
	for n in range(1000):
		run.timestep(1)
	print ff.evaluate(bed, run.get_surface_elev())
Пример #2
0
def main():
    b0 = [-53.86014283247338, -96.55148545680116, -209.56378728526175, -329.5285447843742, -276.1078577736731, -99.4682311472077, -74.60838257235906, 103.76931702628877, 199.59759885797695, 325.49387992076936, 294.9387516971606, 190.74077827555544, 95.99117577626988, 252.4851292030383, 410.3736616110993, 500, 500, 444.71357635367707, 326.35184433516275, 223.25791552817049, 98.55471776145947, 134.18167926051117, 30.336550811088184, -88.39136174706994, -121.36948314990242, -18.45822543176338, -66.01158355801323, 52.93628093781889, -92.66509252409524, 15.70587677548626, -22.132177754463765, 6.391541935525751, -68.42339808954196, 39.59640808291448, 53.464027842215515, 136.78502122848863, 254.14520471035019, 192.5665648106059, 65.30439277418417, 14.10079843084735, -114.02424000705798, -289.4634592194706, -303.0305745281302, -266.62019841090347, -198.4732468197231, -210.421471160374, -143.2408448139692, -66.7972463258127, -18.769521382966776, 46.9742033841991, 105.26603075720368, 164.98279637713722, -43.50064538327361, -79.11047511726842, -3.8891318593645394, 12.390579201231496, -59.56957705146683, 0]
    base = tools.load_nolan_bedrock()
    b0 = map(operator.add, base, b0)

    run1 = isothermalISM(58, 1000, 0.0015, .0005, 0.00022, b0) #55 nodes, 1000-meter spacing,  basal slip was .0005
    run1.openOutput('run1.nc')

    for i in range(1500): #5000 years
        run1.timestep(1)
        if(i%100==0): 
            print 'on timestep', i
            run1.write()
    #run1.calculate_velocity()   
    run1.close()
    tools.plot_model_run('run1.nc')
Пример #3
0
def main():
    base = tools.load_nolan_bedrock()
    b0 = base#map(operator.add, base, b0)


    run1 = isothermalISM(58, 1000, 1e-16, 1e-16, b0)#.001125, .000025, b0) #55 nodes, 1000-meter spacing,  basal slip was .0005
    run1.openOutput('run1.nc')

    for i in range(5000): #5000 years
        run1.timestep(31536000)#1 yr in seconds??
        if(i%100==0): 
            print 'on timestep', i
            run1.write()
    #basal = run1.calculate_basal_velocity()  
    #deformation = run1.calculate_velocity() 
    run1.close()
    tools.plot_model_run('run1.nc')
    print run1.get_ice_thickness()
Пример #4
0
def main():
    ff = evaluate.FitnessFunction()
    base = tools.load_nolan_bedrock()
    surf = tools.load_first_guess_surface()
    for i in range(9):
        mp.plot(range(58), base, "red")
        params = create(58, -500, 500)
        bed = map(operator.add, params, base)
        mp.plot(range(58), bed, "blue")
        run1 = basic_model.isothermalISM(
            58, 1000, 0.0015, 0.0005, 0.00022, bed[:]
        )  # 55 nodes, 1000-meter spacing,  basal slip was .0005

        for i in range(1500):  # 5000 years
            run1.timestep(1)
            if i % 100 == 0:
                print "on timestep", i
        mp.plot(range(58), run1.get_surface_elev()[:58])
        mp.plot(range(57), surf, "red")
        mp.scatter([1, 5, 12, 20, 32], [-70, -200, -500, -600, -250])
        print "surface difference:", tools.calculate_surface_difference(surf, run1.get_surface_elev()[:58])
        print "evaluate surface difference:", ff.evaluate(bed, run1.get_surface_elev())
        mp.show()
import basic_model
import tools
import numpy as np

possibilities1 = [ .0008, .00082, .00085, .0009, .00095, .00097, .00099, .001, .0012, .0015]
possibilities2 = [ .0005, .0006, .0007,.00072, .00075, .00077, .0008, .00082, .00085, .0009]
possibilities3 = [.0001, .0002, .00022, .00024, .00026, .00028, .0003, .0004, .0005, .00055]
results = np.zeros([1000, 4])
count = 0
b0 = tools.load_nolan_bedrock()
obs_surface = tools.load_first_guess_surface()
for i in possibilities1:
	for j in possibilities2:
		for k in possibilities3:
			run = basic_model.isothermalISM(58, 1000, i,j,k, b0[:])
			for n in range(1000):
				run.timestep(1)
			difference = tools.calculate_surface_difference(run.get_surface_elev(), obs_surface)
			results[count][0] = i
			results[count][1] = j
			results[count][2] = k
			results[count][3] = difference
			count =+ 1
			print i, j, k, difference

f = file("experiment_results.txt","wb")
np.save(f,results)
f.close()
#best for 2: .00095, .0002

#best for 3: 0.0015 0.0005 0.00022 564.84883375
Пример #6
0
	def __init__(self, roughness_penalty):
		self.gps_surface = tools.load_first_guess_surface()
		self.nolan_bed = tools.load_nolan_bedrock()
		self.roughness_penalty = roughness_penalty