Skip to main content

Matsuno Analytical Wave Solution implemented in Python

Project description

pymaws: Matsuno Analytical Wave Solution implemented in Python

A python module for evaluating the initial conditions used in: The Matsuno baroclinic wave test case (under review for GEOSCI. MODEL DEV.).

Installation

pymaws has minimal requirements of:

  • Python 3.4 to 3.7
  • numpy 1.16

The package can be installed using pip:

$ pip install pymaws

Testing

The testing procedure tests all the parts of pymaws and should take anywhere from a few seconds upto 20 seconds due to random elements in the tests. To run the tests, use python3 in the command line:

$ python test_pymaws.py

You should get OK in the last line.

Getting Started

In the python environmnet, start by importing pymaws with the command:

$ from pymaws import *

The main function eval_field was loaded to your environment and a dictionary named Earth that stores the planetary parameters used in this package. (if you want to run eval_field with different parameters , see below)

Example

Let's begin with a regular grid of lat/lon on a 20 second time interval:

$ import numpy as np
$ nlats = 100
$ nlons = 200
$ ntime = 50
$ lats = np.deg2rad(np.linspace(-80, 80, nlats))
$ lons = np.deg2rad(np.linspace(-180, 180, nlons))
$ time = np.linspace(0.0, 20, ntime)

Now, let's evaluate the meridional velocity field of an Eastward propagating Inertia-Gravity (EIG) wave:

$ v = np.zeros((ntime, nlats, nlons))
$ for t in range(ntime):
$     for j in range(nlats):
$         for i in range(nlons):
$             v[t, j, i] = eval_field(lats[j], lons[i], time[t], 
$                                           field='v', wave_type='EIG')

$ v.shape
$ (50, 200, 100)

Note that the default arguments of eval_field are n=1, k=5, amp=1e-5, wave_type='Rossby' and parameters=Earth. This package does not include visualizations of any kind, but you can use matplotlib, e.g.

$ from matplotlib import pyplot as plt
$ plt.contourf(np.rad2deg(lons), np.rad2deg(lats), v[0, :, :])
$ plt.xlim(-36,36)
$ plt.ylim(-30,30)

Meridional velocity at t=0 Meridional velocity at t=0

Caveats

This version of pymaws does not solve Matsuno equations for n, k < 1,

Planetary Parameters:

The default parameters in pymaws are stored in a dictionary named Earth:

$  {'angular_frequency': 7.29212e-05,
      'gravitational_acceleration': 9.80616,
      'mean_radius': 6371220.0,
      'layer_mean_depth': 30.0}

If you want to use different planetary parameters, just copy the dictionary Earth and replace the appropriate values. For example lets change the layer_mean_depth parameter to 10 meters:

$   Earth_1 = Earth.copy()
$   Earth_1['layer_mean_depth'] = 10.0

When you run eval_field, remember to use the argument parameters=Earth_1.

How to cite pymaws

If you use pymaws in your academic work and publish a paper, we kindly ask that you cite pymaws using the following DOI:

License

This project is licensed under the MIT License - see the LICENSE file for details

Authors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymaws-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

pymaws-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file pymaws-0.1.0.tar.gz.

File metadata

  • Download URL: pymaws-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.29.1 CPython/3.6.8

File hashes

Hashes for pymaws-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cdfd371c89ec288b04233b4b2a857899da896f904af60197cc91d96233c7d0dd
MD5 73dffc85d4f1d861e550b40e5ee57993
BLAKE2b-256 b1d06f089e33ed1babcbb810d51806a134c8f0e92fd6622072bd25d103eff27c

See more details on using hashes here.

File details

Details for the file pymaws-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pymaws-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.29.1 CPython/3.6.8

File hashes

Hashes for pymaws-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95f0511edc9a1f70b7118481325a4ca71a1d3ddafff7358b85b7804cdfbf9e72
MD5 bd1c59fc06fcdef442a824304887b293
BLAKE2b-256 8e9194e19d95ef13382fa1476239c8ee2e844e41980e4033f8a928431ade1d24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page