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