import matplotlib.patches as mpatches import grassplot as gp # v.extract in=river_mouth_regions out=river_mouth_regions_ESurf where="river = 'Mississippi' OR river = 'Rio Grande' OR river = 'Colorado' OR river = 'Columbia' OR river = 'Mackenzie' OR river = 'Hudson Strait' OR river = 'Saint Lawrence' OR river = 'Hudson' OR river = 'Susquehanna'" # Import files lat_lon_name = np.loadtxt('site_list_lat_lon_name', delimiter=', ', dtype=str) lat = lat_lon_name[:,0].astype(float) lon = lat_lon_name[:,1].astype(float) rivername = lat_lon_name[:,2] rivername[1] = 'Hudson Strait\nand Hudson Bay' rivername[2] = 'St. Lawrence' # River mouth regions - run this inside NA30asBristol #rmr = gp.read_vector_lines('river_mouth_regions_qsr') rmr = gp.read_vector_lines('river_mouth_regions_ESurf') # Offsets for rivers xoffset = [0, -2E5, -1E5, 1E5, -2E5, -2E5, 0, 1E5, -3E5] yoffset = [3E5, -1E5, -5E4, 5E4, -2E5, 1E5, -3E5, 5E4, -3E5] horizontalalignment = ['center', 'right', 'right', 'left', 'right', 'center', 'center', 'left', 'right'] rotation = [0, 30, 30, 0, 0, 0, 0, 0, 0] # Location map m = Basemap(width=7000000,height=6500000, resolution='l',projection='laea',\ lat_ts=52,lat_0=52,lon_0=-100.) # Offsets for rivers
grass.run_command('g.region', rast='topo_000000') print "shaded relief" grass.run_command('r.relief', zscale=3, altitude=34, input='topo_'+age, output='shaded_'+age, overwrite=False) # ANU except: pass #probably already made #if age[-2] == '0': plt.clf() print "***", age, "***" shaded = p.rastprep('shaded_'+age) topo = p.rastprep('topo_'+age) ice_raw = p.rastprep('ice_'+age) tpi = topo + ice_raw #ice = ice_raw.copy() ##ice[ice_raw <= 40] = np.nan #ice[ice_raw <= 100] = np.nan # axis size drainage_basins = gp.read_vector_lines('drainage_basins_'+age) rivers_1000cumec = gp.read_vector_lines('rivers_1000cumec_'+age, area=False) shore = gp.read_vector_lines('notocean_only_'+age) ice = gp.read_vector_lines('ice_50m_'+age) i=0 for line in shore: dist = ( (line[1:,0] - line[:-1,0])**2 + (line[1:,1] - line[:-1,1])**2 )**.5 overshoot = (dist > 1.).nonzero()[0] for j in range(len(overshoot)): shore.append(line[:overshoot[j],:]) line = line[overshoot[j]:,:] overshoot -= overshoot[j] shore[i] = line i+=1 shademap = m.imshow(shaded, cmap=plt.cm.Greys)