This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
other:python:jyp_steps [2018/02/26 13:19] jypeter [Matplotlib] Added a ref to zorder |
other:python:jyp_steps [2018/08/01 09:27] jypeter [Getting started] Update quickstart link |
||
---|---|---|---|
Line 58: | Line 58: | ||
- [[https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html|Numpy for Matlab users]] | - [[https://docs.scipy.org/doc/numpy-dev/user/numpy-for-matlab-users.html|Numpy for Matlab users]] | ||
- [[http://mathesaurus.sourceforge.net/matlab-numpy.html|NumPy for MATLAB users]] (nice, but does not seem to be maintained any more) | - [[http://mathesaurus.sourceforge.net/matlab-numpy.html|NumPy for MATLAB users]] (nice, but does not seem to be maintained any more) | ||
- | - read the [[https://docs.scipy.org/doc/numpy-dev/user/quickstart.html|Quickstart tutorial]] | + | - read the really nice [[https://docs.scipy.org/doc/numpy/user/quickstart.html|numpy Quickstart tutorial]] |
- have a quick look at the full documentation to know where things are | - have a quick look at the full documentation to know where things are | ||
- Numpy User Guide | - Numpy User Guide | ||
Line 129: | Line 129: | ||
==== cdms2 ==== | ==== cdms2 ==== | ||
- | Summary: cdms2 can read/write netCDF files (and read //grads// dat+ctl files) and provides a higher level interface than netCDF4. Unfortunately, cdms2 is only available in the [[other:python:starting#uv-cdat|UV-CDAT distribution]], and distributions where somebody has installed some version of //cdat-lite//. When you can use cdms2, you also have access to //cdtime//, that is very useful for handling time axis data. | + | Summary: cdms2 can read/write netCDF files (and read //grads// dat+ctl files) and provides a higher level interface than netCDF4. cdms2 is available in the [[other:python:starting#uv-cdat|UV-CDAT distribution]], and can theoretically be installed independently of UV-CDAT (e.g. it will be installed when you install [[https://cmor.llnl.gov/mydoc_cmor3_conda/|CMOR in conda)]]. When you can use cdms2, you also have access to //cdtime//, that is very useful for handling time axis data. |
How to get started: | How to get started: | ||
Line 135: | Line 135: | ||
- the tutorial is in French (soooorry!) | - the tutorial is in French (soooorry!) | ||
- you have to replace //cdms// with **cdms2**, and //MV// with **MV2** (sooorry about that, the tutorial was written when CDAT was based on //Numeric// instead of //numpy// to handle array data) | - you have to replace //cdms// with **cdms2**, and //MV// with **MV2** (sooorry about that, the tutorial was written when CDAT was based on //Numeric// instead of //numpy// to handle array data) | ||
- | - read the [[http://uv-cdat.llnl.gov/documentation/cdms/cdms.html|official cdms documentation]] | + | - read the [[http://cdms.readthedocs.io/en/docstanya/index.html|official cdms documentation]] (link may change) |
- | - ask questions and get answers on the [[http://uvcdat.askbot.com/questions/|UV-CDAT askbot]] | + | |
Line 145: | Line 144: | ||
Where: [[http://unidata.github.io/netcdf4-python/]] | Where: [[http://unidata.github.io/netcdf4-python/]] | ||
+ | ===== CDAT-related resources ===== | ||
+ | |||
+ | Some links, in case they can't be found easily on the [[https://uv-cdat.llnl.gov|UV-CDAT]] web site... | ||
+ | |||
+ | * [[https://uv-cdat.llnl.gov/tutorials.html|Tutorials in ipython notebooks]] | ||
+ | * [[http://cdat-vcs.readthedocs.io/en/latest/|VCS: Visualization Control System]] | ||
+ | * [[https://github.com/CDAT/vcs/issues/238|Colormaps in vcs examples]] | ||
+ | * [[https://github.com/CDAT/cdat-site/blob/master/eztemplate.md|EzTemplate Documentation]] | ||
===== Matplotlib ===== | ===== Matplotlib ===== | ||
Line 168: | Line 175: | ||
===== Graphics related resources ===== | ===== Graphics related resources ===== | ||
+ | * [[http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1003833|Ten Simple Rules for Better Figures]] | ||
* [[http://seaborn.pydata.org/|Seaborn]] is a library for making attractive and informative statistical graphics in Python, built on top of matplotlib | * [[http://seaborn.pydata.org/|Seaborn]] is a library for making attractive and informative statistical graphics in Python, built on top of matplotlib | ||
* See also: [[https://www.datacamp.com/community/tutorials/seaborn-python-tutorial| | * See also: [[https://www.datacamp.com/community/tutorials/seaborn-python-tutorial| | ||
Python Seaborn Tutorial For Beginners]] | Python Seaborn Tutorial For Beginners]] | ||
- | * [[http://colorbrewer2.org|ColorBrewer 2.0]] is a tool that can help you understand, and experiment with //sequential//, //diverging// and //qualitative// colormaps | + | * Working with colors |
+ | * [[https://matplotlib.org/users/colormaps.html|Choosing colormaps]] | ||
+ | * [[https://matplotlib.org/cmocean/|Beautiful colormaps for oceanography: cmocean]] | ||
+ | * [[http://colorbrewer2.org|ColorBrewer 2.0]] is a tool that can help you understand, and experiment with //sequential//, //diverging// and //qualitative// colormaps | ||
Line 207: | Line 218: | ||
Help on //stack overflow//: [[https://stackoverflow.com/questions/tagged/cartopy|cartopy help]] | Help on //stack overflow//: [[https://stackoverflow.com/questions/tagged/cartopy|cartopy help]] | ||
+ | ===== 3D resources ===== | ||
+ | |||
+ | * [[https://ipyvolume.readthedocs.io/en/latest/|Ipyvolume]] | ||
+ | * [[https://zulko.wordpress.com/2012/09/29/animate-your-3d-plots-with-pythons-matplotlib/|Animate your 3D plots with Python’s Matplotlib]] | ||
+ | * [[https://stackoverflow.com/questions/26796997/how-to-get-vertical-z-axis-in-3d-surface-plot-of-matplotlib|How to get vertical Z axis in 3D surface plot of Matplotlib?]] | ||
+ | |||
+ | ===== Data file formats ===== | ||
+ | |||
+ | We list here some resources about non-NetCDF data formats that can be useful | ||
+ | |||
+ | ==== json files ==== | ||
+ | |||
+ | More and more applications use //json files// as configuration files or as a mean to use text files to exchange data (through serialization/deserialization ). | ||
+ | |||
+ | //json// files look basically like a **list of (nested) python dictionaries** that would have been dumped to a text file | ||
+ | |||
+ | * [[https://docs.python.org/2/library/json.html|json module]] documentation | ||
+ | * [[https://realpython.com/python-json/|Working With JSON Data in Python]] tutorial | ||
+ | * example script: ''/home/users/jypeter/CDAT/Progs/Devel/beaugendre/nc2json.py'' | ||
+ | * A compact (not easy to read...) //json// file can be pretty-printed with\\ ''cat file.json | python -m json.tool | less'' | ||
+ | |||
+ | ==== LiPD files ==== | ||
+ | |||
+ | Resources for //Linked PaleoData//: | ||
+ | * [[http://linked.earth/projects/lipd/|LiPD]] | ||
+ | * [[https://doi.org/10.5194/cp-12-1093-2016|Technical note: The Linked Paleo Data framework – | ||
+ | a common tongue for paleoclimatology]] @ GMD | ||
+ | * [[https://github.com/nickmckay/LiPD-utilities|LiPD-utilities]] @ github | ||
+ | |||
+ | ==== BagIt files ==== | ||
+ | |||
+ | //BagIt//, a set of hierarchical file layout conventions for storage and transfer of arbitrary digital content. | ||
+ | |||
+ | * [[https://tools.ietf.org/html/draft-kunze-bagit-16|The BagIt File Packaging Format]] | ||
+ | * [[https://github.com/LibraryOfCongress/bagger|Bagger]] (BagIt GUI) | ||
+ | * [[https://github.com/LibraryOfCongress/bagit-python|bagit-python]] | ||
===== Pandas ===== | ===== Pandas ===== | ||