1.3.4.2.1.4. Gestion d’une banque de bathymétries XYZ

Note

Dans l’exemple ci-dessous, le fichier de recensement des bathymétries est spécifié manuellement. Vous n’aurez normalement pas à le spécifier car il en existe un par défaut.

Voir : XYZBathyBank (et éventuellement XYZBathyBankClient et XYZBathyMixer).

../_images/bathy-bathy-xyz-bathybank.png
# Creation de fausses bathymetries xyz
import numpy as N,  os, pylab as P
from vacumm.bathy.bathy import XYZBathy,  XYZBathyBank
# - fonction generatrice
def gene_bathy(xc, yc, r, n):
    noise = N.random.random(n)
    a = N.random.random(n)*N.pi*2
    r = r*N.random.random(n)
    x = xc + r*N.cos(a)
    y = yc + r*N.sin(a)
    return N.asarray([x, y, N.exp(-(x-xc)**2/r**2-(y-yc)**2/r**2)*30.+noise]).transpose()
# - bathy sud
fsouth = __file__[:-2]+'bathy_south.xyz'
N.savetxt(fsouth, gene_bathy(-5.1, 48.1, .15, 200))
# - bathy nord
fnorth = __file__[:-2]+'bathy_north.xyz'
N.savetxt(fnorth, gene_bathy(-5.1, 48.3, .15, 100))
# - bathy large
flarge = __file__[:-2]+'bathy_large.xyz'
N.savetxt(flarge, gene_bathy(-5.2, 48., .4, 300))

# On stocke dans une banque
# - from scratch
bank_file = __file__[:-2]+'bank.cfg'
if os.path.exists(bank_file): os.remove(bank_file)
# - init de la banque
bank = XYZBathyBank(bank_file)
# - ajout des fichiers bathy
bank.add(fsouth, id='south', long_name='South')
bank.add(fnorth, id='north', long_name='North')
bank.add(flarge) # id auto
#   you can also use: bank += flarge
# - on verifie ce qu'on a
print bank


# Petites modifs
# - id
bank['bathy.bathy.xyz.bathybank.bathy_large'].id = 'large'
# - transparence
bank['north'].transp = False
# - long name
bank['large'].long_name = 'Large'

# Suppression d'une bathy
bank.remove('south')
#  on peut aussi utiliser:
#  >>> bank -= 'south'
#  >>> bank -= bsouth
#  >>> del bank['south']

# Chargement d'une bathy
bsouth = bank['north'].load()

# Plot de l'ensemble
bank.plot(size=15,  map_proj='cyl', map_res=None, savefigs=__file__,
    savefigs_pdf=True, show=False)
P.close()