.. GMTDataArrayAccessor:


GMTDataArrayAccessor
====================


.. code::

	pygmt.GMTDataArrayAccessor(xarray_obj)
	


Accesseur GMT pour `xarray.DataArray`.

L'accesseur s'étend `xarray.DataArray` pour stocker les propriétés spécifiques à GMT sur les grilles, qui sont importantes pour que PyGMT traite et trace correctement les grilles.

**Remarques**

En raison des limitations des accesseurs xarray, les accesseurs GMT sont créés une fois par `xarray.DataArray` instance. Vous risquez de perdre ces propriétés spécifiques à GMT lors de la manipulation de grilles (par exemple, opérations arithmétiques et tranches) ou lors de l'accès à a `xarray.DataArray` depuis un `xarray.Dataset` . Dans ces cas, vous devez définir manuellement ces propriétés avant de transmettre la grille à PyGMT.

**Exemples**

Pour les ensembles de données distants intégrés de GMT, ces propriétés spécifiques à GMT sont automatiquement déterminées et vous pouvez y accéder comme suit :

.. code::
	
	from pygmt.datasets import load_earth_relief
	# Use the global Earth relief grid with 1 degree spacing
	grid = load_earth_relief(resolution="01d", registration="pixel")
	# See if grid uses Gridline (0) or Pixel (1) registration
	grid.gmt.registration
	1
	# See if grid uses Cartesian (0) or Geographic (1) coordinate system
	grid.gmt.gtype
	1

Pour `xarray.DataArray` les grilles créées par vous-même, les propriétés de la grille `registration` et `gtype` la valeur par défaut sont 0 (c'est-à-dire une grille cartésienne enregistrée sur la grille). Vous devez définir les propriétés correctes avant de le transmettre aux fonctions PyGMT :

.. code::

	import numpy as np
	import pygmt
	import xarray as xr
	# create a DataArray in gridline coordinates of sin(lon) * cos(lat)
	interval = 2.5
	lat = np.arange(90, -90 - interval, -interval)
	lon = np.arange(0, 360 + interval, interval)
	longrid, latgrid = np.meshgrid(lon, lat)
	data = np.sin(np.deg2rad(longrid)) * np.cos(np.deg2rad(latgrid))
	grid = xr.DataArray(
	    data, coords=[("latitude", lat), ("longitude", lon)]
	)
	# default to a gridline-registrated Cartesian grid
	grid.gmt.registration, grid.gmt.gtype
	(0, 0)
	# set it to a gridline-registered geographic grid
	grid.gmt.registration = 0
	grid.gmt.gtype = 1
	grid.gmt.registration, grid.gmt.gtype
	(0, 1)
	
	
Notez que les accesseurs sont créés une fois par `xarray.DataArray` instance, vous risquez donc de perdre ces propriétés spécifiques à GMT après avoir manipulé votre grille.

Les opérateurs d'affectation sur place comme `*=` ne créent pas de nouvelles instances, donc les propriétés sont toujours conservées :

.. code::

	grid \*= 2.0
	grid.gmt.registration, grid.gmt.gtype
	(0, 1)

D'autres opérations de grille (par exemple, des opérations arithmétiques ou de découpage) créent de nouvelles instances, de sorte que les propriétés seront perdues :

.. code::
	
	# grid2 is a slice of the original grid
	grid2 = grid[0:30, 50:80]
	# properties are reset to the default values for new instance
	grid2.gmt.registration, grid2.gmt.gtype
	(0, 0)
	# need to set these properties before passing the grid to PyGMT
	grid2.gmt.registration = grid.gmt.registration
	grid2.gmt.gtype = grid.gmt.gtype
	grid2.gmt.registration, grid2.gmt.gtype
	(0, 1)
	
L'accès à a `xarray.DataArray` depuis a `xarray.Dataset` crée toujours de nouvelles instances, donc ces propriétés sont toujours perdues. La solution consiste à affecter le `xarray.DataArray` dans une variable :


.. code::

	ds = xr.Dataset({"zval": grid})
	ds.zval.gmt.registration, ds.zval.gmt.gtype
	(0, 0)
	# manually set these properties won't work as expected
	ds.zval.gmt.registration, ds.zval.gmt.gtype = 0, 1
	ds.zval.gmt.registration, ds.zval.gmt.gtype
	(0, 0)
	# workaround: assign the DataArray into a variable
	zval = ds.zval
	zval.gmt.registration, zval.gmt.gtype
	(0, 0)
	zval.gmt.registration, zval.gmt.gtype = 0, 1
	zval.gmt.registration, zval.gmt.gtype
	(0, 1)


Les attributs
-------------

.. code::
	
	propriétéGMTDataArrayAccessor. gtype

Type de système de coordonnées de la grille, soit 0 (cartésien) ou 1 (géographique).


.. code::
	
	propriétéGMTDataArrayAccessor. inscription

Type d'enregistrement de la grille, soit 0 (Gridline) ou 1 (Pixel).