...
| Macro | Python | Notes |
|---|---|---|
| number | number | |
| string | string | |
| list | list | Can also pass a tuple to Macro, and it will be converted to a Macro list |
| fieldset | Fieldset | Lightweight wrapper class in Meview-Python |
| geopoints | Geopoints | Lightweight wrapper class in Meview-Python |
| observations | Bufr | Lightweight wrapper class in Meview-Python |
| netcdf | NetCDF | Lightweight wrapper class in Meview-Python |
| odb | Odb | Lightweight wrapper class in Meview-Python |
| table | Table | Lightweight wrapper class in Meview-Python |
| vector | numPy array | |
| date | datetime | Can also pass a date or a datetime64 to Macro |
| definition | dictionary | |
| nil | None |
Working with Fieldsets
Fieldsets work much the same as they do in the Macro language, but watch out for these things:
- indexing starts at 0:
first_field = my_fieldset[0] - comparison operators work the same, i.e. they return a fieldset of 1s and 0s:
smaller = fs1 < fs2 - equality and non-equality operators are
==and!= - Fieldsets can be directly constructed either as empty, or with a path to a GRIB file:
f = mv.Fieldset()f = mv.Fieldset(path='test.grib')
- concatenation can be done like this:
my_fieldset.append(my_other_fieldset) - length of a fieldset can be found with the
lenfunction:num_fields = len(my_fieldset) - slicing works:
my_fields = fs[0:6:2] - iteration works:
for f in my_fieldset: #do something
Working with dates
There are several differences between the usage of the date object in Macro and the datetime object in Python. You will find a few examples below to compare the various date manipulation techniques used in Macro and Python, respectively.
...