====== JYP's map room ====== You will find below a gallery of maps made with [[other:python:matplotlib_by_jyp|matplotlib]] and [[https://scitools.org.uk/cartopy/|cartopy]] Be sure to also have at least a quick look at the examples available in the [[https://scitools.org.uk/cartopy/docs/latest/gallery/|Cartopy Gallery]]! You can get more python information on the [[other:python:jyp_steps|JYP's recommended steps for learning python]] page. This page is under construction and its content may change drastically. The source codes are on LSCE servers, that you can hopefully access (too bad otherwise...) ===== PFT maps ===== * Summary: plot two PFT maps on a page * Authors: Camille Contoux & Jean-Yves Peterschmitt * Date: September 2019 * Script: ''~jypeter/CDAT/Progs/Devel/contoux/plot_PFT_plio_pi.py'' {{:other:python:pft_plio_0k.png?direct&300 |}} * Load the NetCDF model data with ''cdms2'' * Optionally reduce the number of PFTs before plotting * Use ''matplotlib''+''cartopy'' to create the plot * Create two plots with a //PlateCarree// projection and a common colorbar * Use an //A4 portrait// (''figsize=(8.3, 11.7)'') figure size and ''subplots_adjust'' in order to improve the page layout * Use a //listed colormap// (and the associated //norm//), and ''pcolormesh'' to plot the discrete PFT values * Use a trick to make sure that the black plot border is correctly plotted above everything (''top_plot.outline_patch.set_zorder(50)''). Note: the plot border problem in ''cartopy 0.17.0'' has been [[https://github.com/SciTools/cartopy/issues/1364|fixed in a future version of cartopy]] and the //outline_patch trick// will not be required at some point ===== Megabiome maps ===== * Summary: Plot two megabiome maps based on 2 versions of the IPSL model (CM5 and CM6), and compare them to a map with observations * Authors: Raj Rani & Jean-Yves Peterschmitt * Date: September 2019 * Script: ''~jypeter/CDAT/Progs/Devel/pasb/PMIP4/Press_Conference_1909/mh_CM6_CM5_megabiome.py '' {{:other:python:mh_cm6_cm5_megabiome.png?direct&300 |}} * Load the NetCDF model data with ''cdms2'', and the csv observations' data with ''pandas'' * Use ''matplotlib''+''cartopy'' to create the plot * Create three plots on a 2x2 layout with an //Orthographic// projection (centered on Europe) and a common colorbar. Explicitly make the 4th plot //invisible// in order to make space for plotting the colorbar (''colorbar_plot.background_patch.set_visible(False)'' and ''colorbar_plot.outline_patch.set_visible(False)'') * Use a square (''figsize=(8, 8)'') figure size in order to improve the page layout * Use the same color scale for both the model data (plotted with ''pcolormesh'') and the observation data (plotted with ''scatter'') * Use a //dictionary trick// for easily using the same gridlines parameters for all the maps * Use a common //listed colormap// to plot the discrete megabiome values (with a //norm// associated with the megabiome values) and the observations (with a **different //norm//** associated with the observations) * The three plots have the same colormap, but we create a standalone colormap (created with ''mpl.colorbar.ColorbarBase'') in the Bottom Left quadrant. We use ''UR_plot.get_position().bounds'' to determine the exact location of the Upper Right and Lower Left plots, and combine the coordinates to create the axis (with ''my_page.add_axes'') where the colorbar will be plotted /* standard page footer */ \\ \\ \\ ---- [ [[pmip3:|PMIP3 Wiki Home]] ] - [ [[pmip3:wiki_help|Help!]] ] - [ [[wiki:syntax|Wiki syntax]] ]