avni.plots.models module#
- avni.plots.models.plot_gcpaths(m, stlon: Union[float, numpy.ndarray], stlat: Union[float, numpy.ndarray], eplon: Union[float, numpy.ndarray], eplat: Union[float, numpy.ndarray], ifglobal: bool = False, **kwargs)[source]#
 Plots great-circle paths from longitude and latitude arrays.
- Parameters
 - m
 An instance of mpl_toolkits.basemap Class
- stlontp.Union[float,np.ndarray]
 Longitudes of station location(s)
- stlattp.Union[float,np.ndarray]
 Latitudes of station location(s)
- eplontp.Union[float,np.ndarray]
 Longitudes of station location(s)
- eplattp.Union[float,np.ndarray]
 Latitudes of station location(s)
- ifglobalbool, optional
 Set extent to be global, by default False
- **kwargsdict
 Optional arguments for Basemap
- Returns
 - m
 Updated instance of mpl_toolkits.basemap Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.plot_hotspots(m, dbs_path: Union[None, str] = None, lon360: bool = False, **kwargs)[source]#
 Reads hotspots.pkl from dbs_path and plots on to map instance
Earlier, the data was in pickle format, cross-platform compatibility required json # hotspots = pickle.load(open(‘%s/hotspots.pkl’ % (dbs_path), ‘rb’)) # tools.writejson(hotspots,’%s/hotspots.json’ % (dbs_path))
- Parameters
 - m
 An instance of mpl_toolkits.basemap Class
- dbs_pathtp.Union[None,str], optional
 path specified by user where hotspots.json is located. If not found, defaults to downloading the file from the AVNI server, by default None
- lon360bool, optional
 False if the no longitude above 180 is permitted and is wrapped around, by default False
- **kwargsdict
 Optional arguments for Basemap
- Returns
 - m
 Updated instance of mpl_toolkits.basemap Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.plot_plates(m, dbs_path: Union[None, str] = None, lon360: bool = False, boundtypes: list = ['ridge', 'transform', 'trench'], **kwargs)[source]#
 Plots different types of tectonic plates on to a map object
- Parameters
 - m
 An instance of mpl_toolkits.basemap Class
- dbs_pathtp.Union[None,str], optional
 path specified by user where hotspots.json is located. If not found, defaults to downloading the file from the AVNI server, by default None
- lon360bool, optional
 False if the no longitude above 180 is permitted and is wrapped around, by default False
- boundtypeslist, optional
 Types of boundaries to plot, by default [‘ridge’, ‘transform’, ‘trench’]
- **kwargsdict
 Optional arguments for Basemap
- Returns
 - m
 Updated instance of mpl_toolkits.basemap Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.globalmap(ax, valarray: Union[list, numpy.ndarray], vmin: Union[float, int], vmax: Union[float, int], dbs_path: Union[None, str] = None, colorlabel: Union[None, str] = None, colorticks: bool = True, ticklabels: Union[None, list, numpy.ndarray] = None, colorpalette: str = 'avni', colorcontour=21, hotspots: bool = False, grid: Union[list, numpy.ndarray] = [30.0, 90.0], gridwidth: int = 0, shading: bool = False, model: Union[None, str] = None, resolution: str = 'l', field: str = 'z', **kwargs)[source]#
 Plots a 2-D cross-section of a 3D model on a predefined axis
- Parameters
 - ax
 Axis handle number
- valarraytp.Union[list,np.ndarray]
 a named numpy array containing latitudes (lat), longitudes (lon) and values (val). Can be initialized from three numpy arrays lat, lon and val $ data = np.vstack((lat,lon,val)).transpose() $ dt = {‘names’:[‘latitude’, ‘longitude’, ‘value’], ‘formats’:[float, float, float]} $ valarray = np.zeros(len(data), dtype=dt) $ valarray[‘latitude’] = data[:,0]; valarray[‘longitude’] = data[:,1]; valarray[‘value’] = data[:,2]
- vmin,vmaxtp.Union[float,int]
 Minimum and maximum value of the color scale
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- colorlabeltp.Union[None,str], optional
 Label to use for the colorbar. If None, no colorbar is plotted, by default None
- colorticksbool, optional
 Label and draw the ticks in the colorbar, by default True
- ticklabelstp.Union[None,list,np.ndarray], optional
 Labels for ticks on the colorbar, by default None
- colorpalettestr, optional
 Matplotlib color scales or the AVNI one, by default ‘avni’
- colorcontourint, optional
 Number of contours for colors in the plot. Maximum is 520 and odd values are preferred so that mid value is at white/yellow or other neutral colors, by default 21
- hotspotsbool, optional
 Plot hotspots, by default False
- gridtp.Union[list,np.ndarray], optional
 Grid spacing in latitude and longitude, by default [30.,90.]
- gridwidthint, optional
 Width of the grid lines, by default 0
- shadingbool, optional
 Shade the plot based on topography, by default False
- modeltp.Union[None,str], optional
 Name of the topography file in NETCDF4 format, by default None so use
constants.topography()- resolutionstr, optional
 Resolution of boundary database to use in Basemap. Can be c (crude), l (low), i (intermediate), h (high), f (full), by default ‘l’
- fieldstr, optional
 Field name in the NETCDF4 file to use, by default ‘z’
- **kwargsdict
 Optional arguments for Basemap
- Returns
 - m
 Updated instance of
mpl_toolkits.basemap()Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.backgroundmap(ax, dbs_path: Union[None, str] = None, plates: str = 'r', oceans: str = 'w', continents: str = 'darkgray', boundary: str = 'k', **kwargs)[source]#
 Plots a background map of a 3D model on an axis handle.
- Parameters
 - ax
 Axis handle number
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- platesstr, optional
 Color of tectonic plates, by default ‘r’
- oceansstr, optional
 Color of oceans, by default ‘w’
- continentsstr, optional
 Color of continents, by default ‘darkgray’
- boundarystr, optional
 Color of background around the map, by default ‘k’
- **kwargsdict
 Optional arguments for Basemap
- Returns
 - m
 Updated instance of
mpl_toolkits.basemap()Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.insetgcpathmap(ax, lat1: Union[int, float], lon1: Union[int, float], azimuth: Union[int, float], gcdelta: Union[int, float], projection: str = 'ortho', width: float = 50.0, height: float = 50.0, dbs_path: Union[None, str] = None, numdegticks: int = 7, hotspots: bool = False)[source]#
 Plots the great-circle path based on azimuth and delta from initial location.
Takes width/heght arguments in degrees if projection is Mercator, etc.
- Parameters
 - ax
 Axis handle number
- lat1tp.Union[int,float]
 Initial location latitude
- lon1tp.Union[int,float]
 Initial location longitude
- azimuthtp.Union[int,float]
 Azimuth to final location
- gcdeltatp.Union[int,float]
 Distance in degrees to final location
- projectionstr, optional
 Map projection, by default ‘ortho’
- widthfloat, optional
 Width of the inset map, by default 50.
- heightfloat, optional
 Height of the inset map, by default 50.
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- numdegticksint, optional
 Number of ticks along great-circle path, by default 7
- hotspotsbool, optional
 Plot hotspots, by default False
- Returns
 - m
 Updated instance of
mpl_toolkits.basemap()Class
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.setup_axes(fig, rect, theta: Union[list, numpy.ndarray], radius: Union[list, numpy.ndarray], numdegticks: int = 7, r_locs: list = [3480.0, 3871.0, 4371.0, 4871.0, 5371.0, 5871.0, 6346.6], r_labels: list = ['CMB', ' ', '2000', ' ', '1000', ' ', 'Moho'], fontsize: int = 12)[source]#
 Setup the polar axis for a section plot
- Parameters
 - fig
 A figure hand from
plt.figure()- rect
 A 3-digit number for axis on a plot. Obtained as axis handle from
gridspec.GridSpec()instance. $gs = gridspec.GridSpec(1, 2) $rect = gs[1]- thetatp.Union[list,np.ndarray]
 Range of degrees to plot
- radiustp.Union[list,np.ndarray]
 Range of radius to plot
- numdegticksint, optional
 Number of ticks along great-circle path, by default 7
- r_locslist, optional
 Radius locations to plot as curves, by default [3480.,3871.,4371.,4871.,5371.,5871.,6346.6]
- r_labelslist, optional
 Labels for the radius locations, by default [‘CMB’,’ ‘,’2000’,’ ‘,’1000’,’ ‘,’Moho’]
- fontsizeint, optional
 Tick font size, by default 12
- Returns
 - ax1, aux_ax
 Axis and auxillary axis where the polar axis plot has been made
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.gettopotransect(lat1: Union[int, float], lon1: Union[int, float], azimuth: Union[int, float], gcdelta: Union[int, float], model: Union[None, str] = None, tree=None, dbs_path: Union[None, str] = None, numeval: int = 50, resolution: str = 'l', nearest: int = 1)[source]#
 Get the topography transect based on azimuth and delta from initial location.
- Parameters
 - lat1tp.Union[int,float]
 Initial location latitude
- lon1tp.Union[int,float]
 Initial location longitude
- azimuthtp.Union[int,float]
 Azimuth to final location
- gcdeltatp.Union[int,float]
 Distance in degrees to final location
- modeltp.Union[None,str], optional
 Name of the topography file in NETCDF4 format, by default None so
constants.topography()- tree
 A
scipy.spatial.cKDTree()read from an earlier run, by default None- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- numevalint, optional
 Number of evaluations of topo/bathymetry along the transect, by default 50
- resolutionstr, optional
 Resolution of boundary database to use in Basemap. Can be c (crude), l (low), i (intermediate), h (high), f (full), by default ‘l’
- nearestint, optional
 Number of nearest values in the KD-tree to interpolated from, by default 1 so nearest
- Returns
 - valselect,model,tree
 Values along selected transect, topography model values, and a
scipy.spatial.cKDTree()
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.plottopotransect(ax, theta_range: numpy.ndarray, elev, vexaggerate: int = 150)[source]#
 Plot a topographic transect on an axis
- Parameters
 - ax
 Axis handle number
- theta_rangenp.ndarray
 Range of angles
- elev_type_
 Elevation from topgraphy file, usually in
sparse.csc_matrix()format.- vexaggerateint, optional
 Vertical exxageration to make the plot visible, by default 150
- Returns
 - ax
 Axis handle where the plot has been made
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.getmodeltransect(lat1: Union[int, float], lon1: Union[int, float], azimuth: Union[int, float], gcdelta: Union[int, float], model: str = 'S362ANI+M.BOX25km_PIX1X1.avni.nc4', tree=None, parameter: str = 'vs', radii: list = [3480.0, 6346.6], dbs_path: Union[None, str] = None, numevalx: int = 200, numevalz: int = 200, distnearthreshold: float = 500.0, nearest: int = 10)[source]#
 Get the tomography slice from a AVNI NETCDF4 file
- Parameters
 - lat1tp.Union[int,float]
 Initial location latitude
- lon1tp.Union[int,float]
 Initial location longitude
- azimuthtp.Union[int,float]
 Azimuth to final location
- gcdeltatp.Union[int,float]
 Distance in degrees to final location
- modelstr, optional
 Name of the tomographic model file in NETCDF4 format, by default ‘S362ANI+M.BOX25km_PIX1X1.avni.nc4’
- tree
 A
scipy.spatial.cKDTree()read from an earlier run, by default None- parameterstr, optional
 Physical parameter field in the NETCDF4 file, by default ‘vs’
- radiilist, optional
 Range of radius to plot on the slice, by default [3480.,6346.6]
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- numevalxint, optional
 Number of model evaluations along the horizontal direction, by default 200
- numevalzint, optional
 Number of model evaluations along the vertical direction, by default 200
- distnearthresholdfloat, optional
 Threshold points that are up to a distance away [NOT IMPLEMENTED], by default 500.
- nearestint, optional
 Number of nearest values in the KD-tree to interpolated from, by default 10 so averages nearest 10 points
- Returns
 - xsec,model,tree
 Values along selected section, toography model values, and a
scipy.spatial.cKDTree()
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.section(fig, lat1: Union[int, float], lon1: Union[int, float], azimuth: Union[int, float], gcdelta: Union[int, float], model: str, parameter: str, vmin: Union[float, int], vmax: Union[float, int], dbs_path: Union[None, str] = None, modeltree=None, colorlabel: Union[None, str] = None, colorpalette: str = 'avni', colorcontour: int = 20, nelevinter: int = 100, radii: list = [3480.0, 6346.6], vexaggerate: int = 50, width_ratios: list = [1, 3], numevalx: int = 200, numevalz: int = 300, nearest: int = 10, topo: Union[None, str] = None, resolution: str = 'l', topotree=None, hotspots: bool = False, xsec_data=None)[source]#
 Plot one section across a pair of points based on azimuth and delta from initial location.
- Parameters
 - fig
 A figure hand from
plt.figure()- lat1tp.Union[int,float]
 Initial location latitude
- lon1tp.Union[int,float]
 Initial location longitude
- azimuthtp.Union[int,float]
 Azimuth to final location
- gcdeltatp.Union[int,float]
 Distance in degrees to final location
- modelstr
 Name of the tomographic model file in NETCDF4 format e.g. ‘S362ANI+M.BOX25km_PIX1X1.avni.nc4’
- parameterstr
 Physical parameter field in the NETCDF4 file, by default ‘vs’
- vmin,vmaxtp.Union[float,int]
 Minimum and maximum value of the color scale
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- modeltree, optional
 A
scipy.spatial.cKDTree()of tomograhic model read from an earlier run, by default None- colorlabeltp.Union[None,str], optional
 Label to use for the colorbar. If None, no colorbar is plotted, by default None
- colorpalettestr, optional
 Matplotlib color scales or the AVNI one, by default ‘avni’
- colorcontourint, optional
 Number of contours for colors in the plot. Maximum is 520 and odd values are preferred so that mid value is at white/yellow or other neutral colors, by default 20
- nelevinterint, optional
 Number of evaluations of topo/bathymetry along the transect, by default 100
- radiilist, optional
 Range of radius to plot on the slice, by default [3480.,6346.6]
- vexaggerateint, optional
 Vertical exxageration to make the plot visible, by default 50
- width_ratioslist, optional
 Width ratios of the great circle and section subplots, by default [1,3]
- numevalxint, optional
 Number of model evaluations along the horizontal direction, by default 200
- numevalzint, optional
 Number of model evaluations along the vertical direction, by default 300
- nearestint, optional
 Number of nearest values in the KD-tree to interpolated from, by default 10 so averages nearest 10 points
- topotp.Union[None,str], optional
 Name of the topography file in NETCDF4 format, by default None so
constants.topography()- resolutionstr, optional
 Resolution of boundary database to use in Basemap. Can be c (crude), l (low), i (intermediate), h (high), f (full), by default ‘l’
- topotree_type_, optional
 A
scipy.spatial.cKDTree()of topography read from an earlier run, by default None- hotspotsbool, optional
 Plot hotspots on top of the plot [NOT IMPLEMENTED], by default False
- xsec_data, optional
 Interpolated data along a section found from an earlier run, by default None
- Returns
 - fig,topo,topotree,model,modeltree
 Figure handle, topography values, tomographic model values and the corresponding
scipy.spatial.cKDTree()
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.plot1section(latitude: Union[int, float], longitude: Union[int, float], azimuth: Union[int, float], gcdelta: Union[int, float], model: str, parameter: str, vmin: Union[float, int], vmax: Union[float, int], figuresize: Union[list, numpy.ndarray] = [8, 4], outfile: Optional[str] = None, **kwargs)[source]#
 Plot one section across a pair of points based on azimuth and delta from initial location..
- Parameters
 - latitudetp.Union[int,float]
 Initial location latitude
- longitudetp.Union[int,float]
 Initial location longitude
- azimuthtp.Union[int,float]
 Azimuth to final location
- gcdeltatp.Union[int,float]
 Distance in degrees to final location
- modelstr
 Name of the tomographic model file in NETCDF4 format e.g. ‘S362ANI+M.BOX25km_PIX1X1.avni.nc4’
- parameterstr
 Physical parameter field in the NETCDF4 file, by default ‘vs’
- vmin,vmaxtp.Union[float,int]
 Minimum and maximum value of the color scale
- figuresizetp.Union[list, np.ndarray], optional
 Figure size, by default [8,4]
- outfilestr, optional
 Output file to use in
fig.savefig(), by default None- **kwargsdict
 Optional arguments for Basemap
- Returns
 - topo,topotree,model,modeltree
 Topography values, tomographic model values and the corresponding
scipy.spatial.cKDTree()
- Authors
 Raj Moulik (moulik@caa.columbia.edu)
- Last Modified
 2023.02.16 5.00
- avni.plots.models.plot1globalmap(epixarr: numpy.ndarray, vmin: Union[float, int], vmax: Union[float, int], dbs_path: Union[None, str] = None, colorpalette: str = 'rainbow2', projection: str = 'robin', colorlabel: str = 'Anomaly (%)', lat_0: Union[int, float] = 0, lon_0: Union[int, float] = 150, outfile: Optional[str] = None, shading: bool = False)[source]#
 Plot one global map
- Parameters
 - epixarrnp.ndarray
 Array containing (latitude, longitude, pixel_size, value)
- vmin,vmaxtp.Union[float,int]
 Minimum and maximum value of the color scale
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- colorpalettestr, optional
 Matplotlib color scales or the AVNI one, by default ‘rainbow2’
- projectionstr, optional
 Map projection, by default ‘robin’
- colorlabelstr, optional
 Label to use for the colorbar. If None, no colorbar is plotted, by default “Anomaly (%)”
- lat_0tp.Union[int,float], optional
 Center latitude for the plot, by default 0
- lon_0tp.Union[int,float], optional
 Center longitude for the plot, by default 150
- outfilestr, optional
 Output file to use in
fig.savefig(), by default None- shadingbool, optional
 Shade the plot based on topography, by default False
- avni.plots.models.plot1hitmap(hitfile: str, dbs_path: Union[None, str] = None, projection: str = 'robin', lat_0: Union[int, float] = 0, lon_0: Union[int, float] = 150, colorcontour: list = [0, 25, 100, 250, 400, 600, 800, 1000, 1500, 2500, 5000, 7500, 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000], colorpalette: str = 'Blues', outformat: str = '.pdf', ifshow: bool = True)[source]#
 Plot one hit count map
- Parameters
 - hitfilestr
 A file containg named columns - “latitude”, “longitude”, “value”
- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- projectionstr, optional
 Map projection, by default ‘robin’
- lat_0tp.Union[int,float], optional
 Center latitude for the plot, by default 0
- lon_0tp.Union[int,float], optional
 Center longitude for the plot, by default 150
- colorcontourlist, optional
 Number of contours for colors in the plot, by default [0,25,100,250,400,600,800,1000,1500,2500,5000,7500,10000,15000,20000,25000,30000,35000,40000,45000,50000]
- colorpalettestr, optional
 Matplotlib color scales or the AVNI one, by default ‘Blues’
- outformatstr, optional
 Output file format, by default ‘.pdf’
- ifshowbool, optional
 Display the plot before writing a file, by default True
- avni.plots.models.plotreference1d(ref1d, figuresize: list = [7, 12], height_ratios: list = [2, 2, 1], ifshow: bool = True, format: str = '.eps', isotropic: bool = False, zoomdepth: list = [0.0, 1000.0])[source]#
 Plot the ref1d object array in a PREM like plot
- Parameters
 - ref1d
 An instance of the
Reference1Dclass.- figuresizelist, optional
 Figure size, by default [7,12]
- height_ratioslist, optional
 Height ratios of the three subplots, by default [2, 2, 1]
- ifshowbool, optional
 Display the plot before writing a file, by default True
- formatstr, optional
 Output file format, by default ‘.eps’
- isotropicbool, optional
 Whether model is isotropic so seperate curves for Vsh and Vsv, by default False
- zoomdepthlist, optional
 Zoom into a depth extent in km, by default [0.,1000.]
- avni.plots.models.plotmodel3d(model3d, dbs_path: Union[None, str] = None, x: int = 0, percent_or_km: str = '%', colormin: Union[int, float] = - 6.0, colormax: Union[int, float] = 6.0, depth: Union[None, list, numpy.ndarray] = None, resolution: int = 0, realization: int = 0)[source]#
 Plots interactively a model slice of a variable at a given depth till an invalid depth is input by the user
- Parameters
 - model3d
 An instance of the
Model3Dclass.- dbs_pathtp.Union[None,str], optional
 Path specified by user where database containing hotpot locations, coastlines is located. If not found, defaults to downloading the files from the AVNI server, by default None so uses
tools.get_filedir().- xint, optional
 Index for variable to plot, by default 0
- percent_or_kmstr, optional
 Plot in percent (relative) or km/s (absolute) [NOT IMPLEMENTED], by default ‘%’
- colormin, colormaxtp.Union[int,float], optional
 Minimum and maximum value of the color scale, by default -6 and 6.
- depthtp.Union[None,list,np.ndarray], optional
 Depth to plot, by default None
- resolutionint, optional
 Resolution index in the
Model3Dinstance, by default 0- realizationint, optional
 Realization index in the
Model3Dinstance, by default 0