Exemple #1
0
print 'tiff lims y:', np.amin(yT), np.amax(yT)
print 'ATM lims x:', np.amin(x), np.amax(x)
print 'ATM lims y:', np.amin(y), np.amax(y)
#--------------------------------------------------
#-------------- MASK ELEVATION AND X/Y  ------------------
elevation_maL = ma.masked_where((x < np.amin(xT)) | (x > np.amax(xT)) |
                                (y < np.amin(yT)) | (y > np.amax(yT)),
                                elevation)
elevation_ma = ma.compressed(elevation_maL)
mask = ma.getmask(elevation_maL)
indexT = np.where(mask == False)
xatm = x[indexT]
yatm = y[indexT]
#--------------------------------------------------

level_elev, level_elevl, level_elevu, min_index, thresh = ro.calc_level_ice(
    elevation_ma, pint, pwidth, min_ridge_height, lev_bounds=1)
#thresh = level_elev+min_ridge_height

hist, bins = histogram(elevation_ma, bins=100, density=True)
#PLOT OUT PROB DISTRIBUTION FOR CHECKING
#plot_probdist()

#-------------- CREATE 2D ATM GIRD ------------------
print 'GRID ATM...'

xx = np.arange(np.amin(xT), np.amax(xT), xy_res)
yy = np.arange(np.amin(yT), np.amax(yT), xy_res)
xx2d, yy2d = meshgrid(xx, yy)

elevation2d, elevation2d_ridge_ma, ridge_area = ro.grid_elevation(xatm,
                                                                  yatm,
#-------------- CHECK BOUNDS OF ATM/DMS ----------------
print 'tiff lims x:', np.amin(xT),np.amax(xT)
print 'tiff lims y:', np.amin(yT),np.amax(yT)
print 'ATM lims x:', np.amin(x),np.amax(x)
print 'ATM lims y:', np.amin(y),np.amax(y)
#--------------------------------------------------
#-------------- MASK ELEVATION AND X/Y  ------------------
elevation_maL = ma.masked_where((x<np.amin(xT)) | (x>np.amax(xT)) | (y<np.amin(yT)) | (y>np.amax(yT)), elevation)
elevation_ma = ma.compressed(elevation_maL)
mask = ma.getmask(elevation_maL)
indexT = np.where(mask==False)
xatm = x[indexT]
yatm = y[indexT]
#--------------------------------------------------

level_elev, level_elevl, level_elevu, min_index, thresh = ro.calc_level_ice(elevation_ma, pint, pwidth, min_ridge_height, lev_bounds=1)
#thresh = level_elev+min_ridge_height

hist, bins = histogram(elevation_ma, bins=100, density=True)
#PLOT OUT PROB DISTRIBUTION FOR CHECKING
#plot_probdist()

#-------------- CREATE 2D ATM GIRD ------------------
print 'GRID ATM...'

xx = np.arange(np.amin(xT),np.amax(xT), xy_res)
yy = np.arange(np.amin(yT),np.amax(yT), xy_res)
xx2d, yy2d = meshgrid(xx, yy)

elevation2d, elevation2d_ridge_ma, ridge_area = ro.grid_elevation(xatm, yatm,elevation_ma, xx2d, yy2d, thresh,kdtree=1)
found_ridges=0
Exemple #3
0
                print 'Mean vel:', mean_vel

                if (abs(mean_alt - 500) < 200) & (abs(mean_pitch) <
                                                  5) & (abs(mean_roll) < 5):
                    plane_good = 1
                    poly_path, vertices, sides = ro.get_pos_poly(
                        xp, yp, km_idxs[i], km_idxs[i + 1])
                    xatm_km, yatm_km, elevation_km, azi_km = ro.get_atm_poly_azi(
                        xT, yT, elevationT, aziT, km_utc_times, utc_timeT,
                        poly_path, i)
                    num_pts_section = size(xatm_km)
                    print 'Num pts in section:', size(xatm_km)
                    #if there are more than 15000 pts in the 1km grid (average of around 20000) then proceed
                    if (num_pts_section > pts_threshold):
                        points_good = 1
                        level_elev, thresh, levpercent = ro.calc_level_ice(
                            elevation_km, pint, pwidth, min_ridge_height)
                        elevation_km = elevation_km - level_elev
                        thresh = thresh - level_elev
                        if (azi1 > 300):
                            mask_km = where((azi_km > azi1) | (azi_km < azi2))
                        else:
                            mask_km = where((azi_km > azi1) | (azi_km < azi2))

                        if (size(mask_km) > 100):
                            #MASK IF WEIRDLY DOESN'T HAVE ATM POINTS ON THE SIDE. THINK ABOUT THIS NUMBER MORE!
                            xatm1D1, yatm1D1, elevation1D1, xatm2m, yatm2m, odist2m, elevS2m, tptsN, tpts, dist_diffs = ro.atm_analysis_1D(
                                xatm_km,
                                yatm_km,
                                azi_km,
                                elevation_km,
                                min_ridge_height,
Exemple #4
0
					
					xatm_km, yatm_km, elevation_km = ro.get_atm_poly(xT, yT, elevationT, km_utc_times, utc_timeT, poly_path, i)
					num_pts_section = size(xatm_km)
					print 'Num pts in section:', size(xatm_km)
					#if there are more than 15000 pts in the 1km grid (average of around 20000) then proceed
					
					if  (num_pts_section>pts_threshold):	
						points_good=1
						#ro.plot_atm_poly(m, xatm_km, yatm_km, elevation_km, poly_path, i, out_path, year)
						
						#GET ATM GRID
						xx2d, yy2d = ro.grid_atm(xatm_km, yatm_km, xy_res)
						print 'Grid:', size(xx2d[0]), size(xx2d[1])
						# CALCULATE THE LEVEL ICE SURFACE USING THE CUMULATIVE DISTRIBUTION
						#THRESH IS THE LEVEL ICE PLUS RIDGED ICE ELEVATION
						level_elev, thresh, levpercent = ro.calc_level_ice(elevation_km, pint, pwidth, min_ridge_height)

						#level_elev, thresh, levpercent = ro.calc_level_ice(elevation_km, pwidth, min_ridge_height)

						elevation2d, elevation2d_ridge_ma, ridge_area = ro.grid_elevation(xatm_km, yatm_km,elevation_km, xx2d, yy2d, thresh, kdtree=1)
						elevation2d_ridge_maL =elevation2d_ridge_ma-level_elev
						#IF THERE IS EVEN A LITTLE BIT OF RIDGING (might not actually be enough for a big areal ridge from the labelling) then proceed to clean up data.
						if (ridge_area>0):
							found_ridges=1
							#CLEAN UP DATA WITH KDTREE AROUND RIDGE POINTS
							#REMOVE FOR PRELIMINARY STUDIES AS COMPUTATIONALLY EXPENSIVE!
							#elevation2d_ridge_ma = kdtree_clean()
							#GET RIDGE LABELS - MAKE SURE RIDGES ARE ABOVE CERTAIN SIZE, DECIDED BY NUM_PTS_REQ
							label_im  = ro.get_labels(elevation2d_ridge_maL, xy_res, min_ridge_size, min_ridge_height)
							# DECIDE IF WE WANT TO CALCULATE RIDGE ORIENTATION OR NOT.
							if (np.amax(label_im)>=1):