MapPlotter


NameMapPlotter JSON
Version 2.2.5 PyPI version JSON
download
home_pagehttps://github.com/ArnauMiro/MapPlotter
Summary2D map plots of data and NetCDF files using Cartopy
upload_time2025-10-29 15:34:36
maintainerArnau Miro
docs_urlNone
authorArnau Miro, Elena Terzić
requires_python>=3.9
licenseNone
keywords cartopy maps plots
VCS
bugtrack_url
requirements numpy matplotlib cartopy cmocean datetime netCDF4 requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Build status](https://github.com/ArnauMiro/MapPlotter/actions/workflows/build_python.yml/badge.svg)](https://github.com/ArnauMiro/MapPlotter/actions)
[![License](https://img.shields.io/badge/license-GPL3-orange)](https://opensource.org/license/gpl-3-0/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10598154.svg)](https://doi.org/10.5281/zenodo.10598154)

# Map Plotter

Map Plotter is a toolkit that provides a framework for 2D map plots of data and NetCDF files. It consists of a python class (_MapPlotter_) that interfaces with [cartopy](https://scitools.org.uk/cartopy/docs/latest/) to generate beautiful maps.

This tool depends on:
* the [PROJ library](https://proj.org/)
* [Cartopy](https://scitools.org.uk/cartopy/docs/latest/)
* the [requests](https://pypi.org/project/requests/) module

Two examples (_example_MapPlotter_1.py_ and _example_MapPlotter_2.py_) are provided as a reference.

For any issues please contact: [arnau.miro(at)upc(dot)edu](mailto:arnau.miro@upc.edu).

## Installation

A _Makefile_ is provided within the tool to automate the installation for easiness of use for the user. To install the tool simply create a virtual environment as stated below or use the system Python. Once this is done simply type:
```bash
make
```
This will install all the requirements and install the package to your active python. To uninstall simply use
```bash
make uninstall
```

The previous operations can be done one step at a time using
```bash
make requirements
```
to install all the requirements and
```bash
make install
```
to install the tool.

### Virtual environment

The package can be installed in a Python virtual environement to avoid messing with the system Python installation.
Next, we will use [Conda](https://docs.conda.io/projects/conda/en/latest/index.html) for this purpose.
Assuming that Conda is already installed, we can create a virtual environment with a specific python version and name (`my_env`) using
```bash
conda create -n my_env python=3.8
```
The environment is placed in `~/.conda/envs/my_env`.
Next we activate it be able to install packages using `conda` itself or another Python package manager in the environment directory:
```bash
conda activate my_env
```
Then just follow the instructions as stated above.

### Get cartopy

Cartopy can be installed using the pip tool by doing:
```bash
pip install cartopy
```
Sometimes a segmentation fault can appear when running some projections. In that case the following fixes the issue:
```bash
pip uninstall shapely
pip install --no-binary :all: shapely
```

## Usage

### The MAPPLOTTER class

Plot NETCDF data using CARTOPY. Example python snippets:

```python
import MapPlotter as mp

# Define class instance
plotter = mp.MapPlotter(projection='PlateCarree')
params  = plotter.defaultParams() # Create basic parameters dictionary

# To plot already loaded fields
plotter.plot(lon,lat,data,params=params)

# To plot data from NetCDF data
plotter.plot_from_file(filename,varname,lonname,latname,iTime=0,iDepth=0,params=params)

# To see the data
plotter.save('outfile.png',dpi=300)
plotter.show() # wrapper of plt.show()
```

### MAPPLOTER plot types

The following plotting functions are available:
* Basic empty plot
```python
def plot_empty(self,params=None,clear=True):
	'''
	Plot the map with all the settings and without data.

	Outputs:
		> Figure object
	'''
```
* Main plotting function based on pcolormesh
```python
def plot(self,lon,lat,data,params=None,clear=True,projection='PlateCarree',**kwargs):
	'''
	Main plotting function. Plots given the longitude, latitude and data.
	An optional params dictionary can be inputted to control the plot.

	Inputs:
		> lon:        Longitude vector or matrix
		> lat:        Latitude vector or matrix
		> data:       Data matrix
		> params:     (Optional) parameter dictionary
		> clear:      (Optional) Clear axes before plotting
		> Projection: Type of projection that the data is
						using (default assumes PlateCarree)

	Outputs:
		> Figure object
	'''
```
* Plotting directly from NetCDF files
```python
def plot_from_file(self,filename,varname,lonname,latname,iTime=0,iDepth=0,params=None,clear=True,projection='PlateCarree',**kwargs):
	'''
	Plot function. Plots data given a NetCDF file and the names of the variables
	as well as the current depth and time index.

	Inputs:
		> filename:   NetCDF file path
		> varname:    Name of the NetCDF variable to plot
		> lonname:    Name of the longitude dimension
		> latname:    Name of the latitude dimension
		> iTime:      Time index for NetCDF (default: 0)
		> iDepth:     Depth index for NetCDF (default: 0)
		> params:     (Optional) parameter dictionary
		> clear:      (Optional) Clear axes before plotting
		> Projection: Type of projection that the data is
						using (default assumes PlateCarree)

	Outputs:
		> Figure object
	'''
```
```python
def plot_from_file_and_mask(self,filename,varname,maskfile,iTime=0,iDepth=0,
	masklon='glamt',masklat='gphit',params=None,clear=True):
	'''
	Plot function. Plots data given a NetCDF file, a mask file, the names of 
	the variables as well as the current depth and time index.

	Inputs:
		> filename:   NetCDF file path
		> varname:    Name of the NetCDF variable to plot
		> maskfile:   Path to the mask file
		> iTime:      Time index for NetCDF (default: 0)
		> iDepth:     Depth index for NetCDF (default: 0)
		> masklon:    Name of the longitude dimension (default: 'glamt')
		> masklat:    Name of the latitude dimension (default: 'gphit')
		> params:     (Optional) parameter dictionary
		> clear:      (Optional) Clear axes before plotting
		> Projection: Type of projection that the data is
						using (default assumes PlateCarree)

	Outputs:
		> Figure object		
	'''
```
* Scatter plot
```python
def scatter(self,xc,yc,data=np.array([]),params=None,clear=True,marker=None,size=None,projection='PlateCarree',**kwargs):
	'''
	Main plotting function. Plots given the longitude, latitude and data.
	An optional params dictionary can be inputted to control the plot.

	Inputs:
		> xc:     Scatter x points
		> yc:     Scatter y points
		> data:   Color data to be plotted
		> params: Optional parameter dictionary
		> clear:  Clear axes before plotting
		> marker: Marker for scatter plot
		> size:   Size for the scatter plot

	Outputs:
		> Figure object
	'''
```
* Line plot (note that it does not allow to map it to a colormap)
```python
def line(self,xc,yc,fmt='-',params=None,clear=True,size=None,projection='PlateCarree',**kwargs):
	'''
	Main plotting function. Plots given the longitude, latitude and data.
	An optional params dictionary can be inputted to control the plot.

	Inputs:
		> xc:     Scatter x points
		> yc:     Scatter y points
		> data:   Color data to be plotted
		> params: Optional parameter dictionary
		> clear:  Clear axes before plotting
		> marker: Marker for scatter plot
		> size:   Size for the scatter plot

	Outputs:
		> Figure object
	'''
```
* Contour plot
```python
def contour(self,lon,lat,data,levels=10,labelsize=None,linewidth=None,params=None,clear=True,projection='PlateCarree',**kwargs):
	'''
	Main plotting function. Plots given the longitude, latitude and data.
	An optional params dictionary can be inputted to control the plot.

	Inputs:
		> lon:        Longitude vector or matrix
		> lat:        Latitude vector or matrix
		> data:       Data matrix
		> levels:     Number and positions of the contour lines / regions
		> linewidth:  (Optional) The line width of the contour lines
		> labelsize:  (Optional) Label font size for contour plot
		> params:     (Optional) Parameter dictionary
		> clear:      (Optional) Clear axes before plotting
		> Projection: Type of projection that the data is
						using (default assumes PlateCarree)

	Outputs:
		> Figure object
	'''
```
* Quiver plot
```python
def quiver(self,xc,yc,uc,vc,dsample=1,data=None,params=None,clear=True,scale=None,color=None,projection='PlateCarree',**kwargs):
	'''
	Main plotting function. Plots given the longitude, latitude and data.
	An optional params dictionary can be inputted to control the plot.

	Inputs:
		> xc:      X position of the arrow
		> yc:      Y position of the arrow
		> uc:      U component for the quiver
		> yc:      V component for the quiver
		> dsample: Downsample (>1 to downsample, use integers)
		> data:    Color data to be plotted. If not provided the modulus is used
		> params:  Optional parameter dictionary
		> clear:   Clear axes before plotting
		> color:   Color to plot (dones not work when data is specified)

	Outputs:
		> Figure object
	'''
```

### Parameters dictionary
The parameters dictionary includes the following modifiable variables.

Figure and axes handles
* _fig_ (default: None): store/give the figure handle
* _ax_  (default: None): store/give the axes handle

Figure and axes creation
* _size_ (default: (8,6)): figure size for creation
* _dpi_  (default: 100): figure dpi for creation
* _style_ (default: None): plot style according to matplotlib styles 

Axes definition and parameters
* _xlim_ (default: [-180,180]): map limits in degrees of longitude
* _ylim_ (default: [-90,90]): map limits in degrees of latitude
* *max_div* (default: 4): maximum number of divisions on the axes
* *axis_format* (default: '.1f'): format of the latitude and logitude axis
* *top_label* (default: False): activate/deactivate axes label on top
* *bottom_label* (default: True): activate/deactivate axes label on bottom
* *right_label* (default: False): activate/deactivate axes label on right
* *left_label* (default: True): activate/deactivate axes label on left
* _grdstyle_ (default: {}): style for the plot grid
* _grdargs_ (default: {'draw_labels':True,'linewidth':0}): arguments for the grid style
* _features_ (default: ['coastline','continents','rivers','image']): features to be added on the plot. Available options are:
	* _coastline_: draw the lines of the coast
	* _continents_: draw the lines of the continents
	* _rivers_: draw the rivers
	* _image_: use an image as background
	* _tilemap_: use a tilemap as background
* _res_ (default: '50m'): resolution for the *tilemap* option
* _img_ (default: None): image to be loaded for the *image* option
* *img_format* (default: 'png'): image format to be loaded for the *image* option
* *map_zoom* (default: 9): zoom for the *tilemap* option
* *map_kind* (default: {'tile':'GoogleTiles','arguments':{'style':'satellite'}}): options for the *tilemap* option

Title and labels
* _title_  (default: []): Plot title in the format of [title,kwargs]
* _xlabel_ (default: []): Plot longitude axis label in the format of [title,kwargs]
* _ylabel_ (default: []): Plot latitude axis label in the format of [title,kwargs]
			
Plot params
* _alpha_ (default: 1.): Transparency control
			
Colormap and colorbar
* _cmap_ (default: 'coolwarm'): colormap for the plot. Any value from matplotlib or cmocean are valid
* _ncol_ (default: 256): number of colors of the colorbar
* *draw_cbar* (default: True): activate/deactivate the colorbar
* _orientation_ (default: 'horizontal'): colorbar orientation, either _horizontal_ or _vertical_
* _extend_ (default: None): whether to extend the colorbar or not
* _shrink_ (default: 1.0): shrinking factor for the colorbar
* _aspect_ (default: 20.): aspect ratio for the colorbar
* _bounds_ (default: [-1e30, 1e30]): bounds, setting as [min,max]
* _numticks_ (default: 10): number of ticks for the colorbar
* *tick_format* (default: '%.2f'): tick format for the colorbar
* *tick_font* (default: None): specific font for the colorbar
* _label_ (default: {'label':'','weight':None,'style':None}): label and specifications for the colorbar


### Command line tool

A command line tool is also provided so that maps can easily be generated from NetCDF files through the command prompt. It can be accessed as:
```bash
map_plotter [-h] -f FILE -v VAR [-m MASK] [--lon LON] [--lat LAT] 
			[-t TIME] [-d DEPTH] [-c CONF] -o OUT [--dpi DPI]
```
Arguments:
* -h, --help               show this help message and exit
* -f FILE, --file FILE     NetCDF file path
* -v VAR, --var VAR        Variable to plot
* -m MASK, --mask MASK     Mask file
* --lon LON                Longitude variable name (default: glamt)
* --lat LAT                Latitude variable name (default: gphit)
* -t TIME, --time TIME     Time index for NetCDF (default: 0)
* -d DEPTH, --depth DEPTH  Depth index for NetCDF (default: 0)
* -c CONF, --conf CONF     Configuration file path
* -o OUT, --outfile OUT    Output file name
* --dpi DPI                Output file DPI (default: 300)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ArnauMiro/MapPlotter",
    "name": "MapPlotter",
    "maintainer": "Arnau Miro",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Arnau Miro <arnau.miro@upc.edu>",
    "keywords": "cartopy, maps, plots",
    "author": "Arnau Miro, Elena Terzi\u0107",
    "author_email": "Arnau Miro <arnau.miro@upc.edu>, Elena Terzi\u0107 <elena.terzic@proton.me>",
    "download_url": "https://files.pythonhosted.org/packages/ff/56/3e1b8f2d8f0433b86ae420941f9234bf12402839e2a12ad5e177a696ad52/mapplotter-2.2.5.tar.gz",
    "platform": null,
    "description": "[![Build status](https://github.com/ArnauMiro/MapPlotter/actions/workflows/build_python.yml/badge.svg)](https://github.com/ArnauMiro/MapPlotter/actions)\n[![License](https://img.shields.io/badge/license-GPL3-orange)](https://opensource.org/license/gpl-3-0/)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10598154.svg)](https://doi.org/10.5281/zenodo.10598154)\n\n# Map Plotter\n\nMap Plotter is a toolkit that provides a framework for 2D map plots of data and NetCDF files. It consists of a python class (_MapPlotter_) that interfaces with [cartopy](https://scitools.org.uk/cartopy/docs/latest/) to generate beautiful maps.\n\nThis tool depends on:\n* the [PROJ library](https://proj.org/)\n* [Cartopy](https://scitools.org.uk/cartopy/docs/latest/)\n* the [requests](https://pypi.org/project/requests/) module\n\nTwo examples (_example_MapPlotter_1.py_ and _example_MapPlotter_2.py_) are provided as a reference.\n\nFor any issues please contact: [arnau.miro(at)upc(dot)edu](mailto:arnau.miro@upc.edu).\n\n## Installation\n\nA _Makefile_ is provided within the tool to automate the installation for easiness of use for the user. To install the tool simply create a virtual environment as stated below or use the system Python. Once this is done simply type:\n```bash\nmake\n```\nThis will install all the requirements and install the package to your active python. To uninstall simply use\n```bash\nmake uninstall\n```\n\nThe previous operations can be done one step at a time using\n```bash\nmake requirements\n```\nto install all the requirements and\n```bash\nmake install\n```\nto install the tool.\n\n### Virtual environment\n\nThe package can be installed in a Python virtual environement to avoid messing with the system Python installation.\nNext, we will use [Conda](https://docs.conda.io/projects/conda/en/latest/index.html) for this purpose.\nAssuming that Conda is already installed, we can create a virtual environment with a specific python version and name (`my_env`) using\n```bash\nconda create -n my_env python=3.8\n```\nThe environment is placed in `~/.conda/envs/my_env`.\nNext we activate it be able to install packages using `conda` itself or another Python package manager in the environment directory:\n```bash\nconda activate my_env\n```\nThen just follow the instructions as stated above.\n\n### Get cartopy\n\nCartopy can be installed using the pip tool by doing:\n```bash\npip install cartopy\n```\nSometimes a segmentation fault can appear when running some projections. In that case the following fixes the issue:\n```bash\npip uninstall shapely\npip install --no-binary :all: shapely\n```\n\n## Usage\n\n### The MAPPLOTTER class\n\nPlot NETCDF data using CARTOPY. Example python snippets:\n\n```python\nimport MapPlotter as mp\n\n# Define class instance\nplotter = mp.MapPlotter(projection='PlateCarree')\nparams  = plotter.defaultParams() # Create basic parameters dictionary\n\n# To plot already loaded fields\nplotter.plot(lon,lat,data,params=params)\n\n# To plot data from NetCDF data\nplotter.plot_from_file(filename,varname,lonname,latname,iTime=0,iDepth=0,params=params)\n\n# To see the data\nplotter.save('outfile.png',dpi=300)\nplotter.show() # wrapper of plt.show()\n```\n\n### MAPPLOTER plot types\n\nThe following plotting functions are available:\n* Basic empty plot\n```python\ndef plot_empty(self,params=None,clear=True):\n\t'''\n\tPlot the map with all the settings and without data.\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n* Main plotting function based on pcolormesh\n```python\ndef plot(self,lon,lat,data,params=None,clear=True,projection='PlateCarree',**kwargs):\n\t'''\n\tMain plotting function. Plots given the longitude, latitude and data.\n\tAn optional params dictionary can be inputted to control the plot.\n\n\tInputs:\n\t\t> lon:        Longitude vector or matrix\n\t\t> lat:        Latitude vector or matrix\n\t\t> data:       Data matrix\n\t\t> params:     (Optional) parameter dictionary\n\t\t> clear:      (Optional) Clear axes before plotting\n\t\t> Projection: Type of projection that the data is\n\t\t\t\t\t\tusing (default assumes PlateCarree)\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n* Plotting directly from NetCDF files\n```python\ndef plot_from_file(self,filename,varname,lonname,latname,iTime=0,iDepth=0,params=None,clear=True,projection='PlateCarree',**kwargs):\n\t'''\n\tPlot function. Plots data given a NetCDF file and the names of the variables\n\tas well as the current depth and time index.\n\n\tInputs:\n\t\t> filename:   NetCDF file path\n\t\t> varname:    Name of the NetCDF variable to plot\n\t\t> lonname:    Name of the longitude dimension\n\t\t> latname:    Name of the latitude dimension\n\t\t> iTime:      Time index for NetCDF (default: 0)\n\t\t> iDepth:     Depth index for NetCDF (default: 0)\n\t\t> params:     (Optional) parameter dictionary\n\t\t> clear:      (Optional) Clear axes before plotting\n\t\t> Projection: Type of projection that the data is\n\t\t\t\t\t\tusing (default assumes PlateCarree)\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n```python\ndef plot_from_file_and_mask(self,filename,varname,maskfile,iTime=0,iDepth=0,\n\tmasklon='glamt',masklat='gphit',params=None,clear=True):\n\t'''\n\tPlot function. Plots data given a NetCDF file, a mask file, the names of \n\tthe variables as well as the current depth and time index.\n\n\tInputs:\n\t\t> filename:   NetCDF file path\n\t\t> varname:    Name of the NetCDF variable to plot\n\t\t> maskfile:   Path to the mask file\n\t\t> iTime:      Time index for NetCDF (default: 0)\n\t\t> iDepth:     Depth index for NetCDF (default: 0)\n\t\t> masklon:    Name of the longitude dimension (default: 'glamt')\n\t\t> masklat:    Name of the latitude dimension (default: 'gphit')\n\t\t> params:     (Optional) parameter dictionary\n\t\t> clear:      (Optional) Clear axes before plotting\n\t\t> Projection: Type of projection that the data is\n\t\t\t\t\t\tusing (default assumes PlateCarree)\n\n\tOutputs:\n\t\t> Figure object\t\t\n\t'''\n```\n* Scatter plot\n```python\ndef scatter(self,xc,yc,data=np.array([]),params=None,clear=True,marker=None,size=None,projection='PlateCarree',**kwargs):\n\t'''\n\tMain plotting function. Plots given the longitude, latitude and data.\n\tAn optional params dictionary can be inputted to control the plot.\n\n\tInputs:\n\t\t> xc:     Scatter x points\n\t\t> yc:     Scatter y points\n\t\t> data:   Color data to be plotted\n\t\t> params: Optional parameter dictionary\n\t\t> clear:  Clear axes before plotting\n\t\t> marker: Marker for scatter plot\n\t\t> size:   Size for the scatter plot\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n* Line plot (note that it does not allow to map it to a colormap)\n```python\ndef line(self,xc,yc,fmt='-',params=None,clear=True,size=None,projection='PlateCarree',**kwargs):\n\t'''\n\tMain plotting function. Plots given the longitude, latitude and data.\n\tAn optional params dictionary can be inputted to control the plot.\n\n\tInputs:\n\t\t> xc:     Scatter x points\n\t\t> yc:     Scatter y points\n\t\t> data:   Color data to be plotted\n\t\t> params: Optional parameter dictionary\n\t\t> clear:  Clear axes before plotting\n\t\t> marker: Marker for scatter plot\n\t\t> size:   Size for the scatter plot\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n* Contour plot\n```python\ndef contour(self,lon,lat,data,levels=10,labelsize=None,linewidth=None,params=None,clear=True,projection='PlateCarree',**kwargs):\n\t'''\n\tMain plotting function. Plots given the longitude, latitude and data.\n\tAn optional params dictionary can be inputted to control the plot.\n\n\tInputs:\n\t\t> lon:        Longitude vector or matrix\n\t\t> lat:        Latitude vector or matrix\n\t\t> data:       Data matrix\n\t\t> levels:     Number and positions of the contour lines / regions\n\t\t> linewidth:  (Optional) The line width of the contour lines\n\t\t> labelsize:  (Optional) Label font size for contour plot\n\t\t> params:     (Optional) Parameter dictionary\n\t\t> clear:      (Optional) Clear axes before plotting\n\t\t> Projection: Type of projection that the data is\n\t\t\t\t\t\tusing (default assumes PlateCarree)\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n* Quiver plot\n```python\ndef quiver(self,xc,yc,uc,vc,dsample=1,data=None,params=None,clear=True,scale=None,color=None,projection='PlateCarree',**kwargs):\n\t'''\n\tMain plotting function. Plots given the longitude, latitude and data.\n\tAn optional params dictionary can be inputted to control the plot.\n\n\tInputs:\n\t\t> xc:      X position of the arrow\n\t\t> yc:      Y position of the arrow\n\t\t> uc:      U component for the quiver\n\t\t> yc:      V component for the quiver\n\t\t> dsample: Downsample (>1 to downsample, use integers)\n\t\t> data:    Color data to be plotted. If not provided the modulus is used\n\t\t> params:  Optional parameter dictionary\n\t\t> clear:   Clear axes before plotting\n\t\t> color:   Color to plot (dones not work when data is specified)\n\n\tOutputs:\n\t\t> Figure object\n\t'''\n```\n\n### Parameters dictionary\nThe parameters dictionary includes the following modifiable variables.\n\nFigure and axes handles\n* _fig_ (default: None): store/give the figure handle\n* _ax_  (default: None): store/give the axes handle\n\nFigure and axes creation\n* _size_ (default: (8,6)): figure size for creation\n* _dpi_  (default: 100): figure dpi for creation\n* _style_ (default: None): plot style according to matplotlib styles \n\nAxes definition and parameters\n* _xlim_ (default: [-180,180]): map limits in degrees of longitude\n* _ylim_ (default: [-90,90]): map limits in degrees of latitude\n* *max_div* (default: 4): maximum number of divisions on the axes\n* *axis_format* (default: '.1f'): format of the latitude and logitude axis\n* *top_label* (default: False): activate/deactivate axes label on top\n* *bottom_label* (default: True): activate/deactivate axes label on bottom\n* *right_label* (default: False): activate/deactivate axes label on right\n* *left_label* (default: True): activate/deactivate axes label on left\n* _grdstyle_ (default: {}): style for the plot grid\n* _grdargs_ (default: {'draw_labels':True,'linewidth':0}): arguments for the grid style\n* _features_ (default: ['coastline','continents','rivers','image']): features to be added on the plot. Available options are:\n\t* _coastline_: draw the lines of the coast\n\t* _continents_: draw the lines of the continents\n\t* _rivers_: draw the rivers\n\t* _image_: use an image as background\n\t* _tilemap_: use a tilemap as background\n* _res_ (default: '50m'): resolution for the *tilemap* option\n* _img_ (default: None): image to be loaded for the *image* option\n* *img_format* (default: 'png'): image format to be loaded for the *image* option\n* *map_zoom* (default: 9): zoom for the *tilemap* option\n* *map_kind* (default: {'tile':'GoogleTiles','arguments':{'style':'satellite'}}): options for the *tilemap* option\n\nTitle and labels\n* _title_  (default: []): Plot title in the format of [title,kwargs]\n* _xlabel_ (default: []): Plot longitude axis label in the format of [title,kwargs]\n* _ylabel_ (default: []): Plot latitude axis label in the format of [title,kwargs]\n\t\t\t\nPlot params\n* _alpha_ (default: 1.): Transparency control\n\t\t\t\nColormap and colorbar\n* _cmap_ (default: 'coolwarm'): colormap for the plot. Any value from matplotlib or cmocean are valid\n* _ncol_ (default: 256): number of colors of the colorbar\n* *draw_cbar* (default: True): activate/deactivate the colorbar\n* _orientation_ (default: 'horizontal'): colorbar orientation, either _horizontal_ or _vertical_\n* _extend_ (default: None): whether to extend the colorbar or not\n* _shrink_ (default: 1.0): shrinking factor for the colorbar\n* _aspect_ (default: 20.): aspect ratio for the colorbar\n* _bounds_ (default: [-1e30, 1e30]): bounds, setting as [min,max]\n* _numticks_ (default: 10): number of ticks for the colorbar\n* *tick_format* (default: '%.2f'): tick format for the colorbar\n* *tick_font* (default: None): specific font for the colorbar\n* _label_ (default: {'label':'','weight':None,'style':None}): label and specifications for the colorbar\n\n\n### Command line tool\n\nA command line tool is also provided so that maps can easily be generated from NetCDF files through the command prompt. It can be accessed as:\n```bash\nmap_plotter [-h] -f FILE -v VAR [-m MASK] [--lon LON] [--lat LAT] \n\t\t\t[-t TIME] [-d DEPTH] [-c CONF] -o OUT [--dpi DPI]\n```\nArguments:\n* -h, --help               show this help message and exit\n* -f FILE, --file FILE     NetCDF file path\n* -v VAR, --var VAR        Variable to plot\n* -m MASK, --mask MASK     Mask file\n* --lon LON                Longitude variable name (default: glamt)\n* --lat LAT                Latitude variable name (default: gphit)\n* -t TIME, --time TIME     Time index for NetCDF (default: 0)\n* -d DEPTH, --depth DEPTH  Depth index for NetCDF (default: 0)\n* -c CONF, --conf CONF     Configuration file path\n* -o OUT, --outfile OUT    Output file name\n* --dpi DPI                Output file DPI (default: 300)\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "2D map plots of data and NetCDF files using Cartopy",
    "version": "2.2.5",
    "project_urls": {
        "Bug Reports": "https://github.com/ArnauMiro/MapPlotter/issues",
        "Homepage": "https://github.com/ArnauMiro/MapPlotter",
        "Source": "https://github.com/ArnauMiro/MapPlotter"
    },
    "split_keywords": [
        "cartopy",
        " maps",
        " plots"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cab96ee45a842901460a5bd983a72cec804dddec9ff6faefa9d24d62c6dbcf80",
                "md5": "572d6101c8fbb552560b710b3b482783",
                "sha256": "390dd7b438038e0040132c68436b9179ce16ff8c588fccb5f4ba6da667d9e781"
            },
            "downloads": -1,
            "filename": "mapplotter-2.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "572d6101c8fbb552560b710b3b482783",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 26676,
            "upload_time": "2025-10-29T15:34:35",
            "upload_time_iso_8601": "2025-10-29T15:34:35.064415Z",
            "url": "https://files.pythonhosted.org/packages/ca/b9/6ee45a842901460a5bd983a72cec804dddec9ff6faefa9d24d62c6dbcf80/mapplotter-2.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ff563e1b8f2d8f0433b86ae420941f9234bf12402839e2a12ad5e177a696ad52",
                "md5": "a1075dfa6ae7fcd8073907eb8a377813",
                "sha256": "c5c1200cb2f3590e2573b3ab369cf1bf370292cc1b28cd117a2e859c36bdd307"
            },
            "downloads": -1,
            "filename": "mapplotter-2.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "a1075dfa6ae7fcd8073907eb8a377813",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 27053,
            "upload_time": "2025-10-29T15:34:36",
            "upload_time_iso_8601": "2025-10-29T15:34:36.266984Z",
            "url": "https://files.pythonhosted.org/packages/ff/56/3e1b8f2d8f0433b86ae420941f9234bf12402839e2a12ad5e177a696ad52/mapplotter-2.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-29 15:34:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ArnauMiro",
    "github_project": "MapPlotter",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "cartopy",
            "specs": []
        },
        {
            "name": "cmocean",
            "specs": []
        },
        {
            "name": "datetime",
            "specs": []
        },
        {
            "name": "netCDF4",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        }
    ],
    "lcname": "mapplotter"
}
        
Elapsed time: 2.22187s