cfdm.Field.creation_commands¶
-
Field.
creation_commands
(representative_data=False, namespace=None, indent=0, string=True, name='field', data_name='data', header=True)[source]¶ Return the commands that would create the field construct.
Construct keys
The key parameter of the output
set_construct
commands is utilised in order minimise the number of commands needed to implement cross-referencing between constructs (e.g. between a coordinate reference construct and coordinate constructs). This is usually not necessary when building field constructs, as by default theset_construct
method returns a unique construct key for the construct being set.New in version (cfdm): 1.8.7.0
See also
set_construct
,cfdm.Data.creation_commands
,cfdm.Domain.creation_commands
,cfdm.example_field
- Parameters
- representative_data:
bool
, optional Return one-line representations of
Data
instances, which are not executable code but prevent the data being converted in its entirety to a string representation.- namespace:
str
, optional The name space containing classes of the cfdm package. This is prefixed to the class name in commands that instantiate instances of cfdm objects. By default, or if
None
, the name space is assumed to be consistent with cfdm being imported asimport cfdm
.- Parameter example:
If cfdm was imported as
import cfdm as xyz
then setnamespace='xyz'
- Parameter example:
If cfdm was imported as
from cfdm import *
then setnamespace=''
- indent:
int
, optional Indent each line by this many spaces. By default no indentation is applied. Ignored if string is False.
- string:
bool
, optional If False then return each command as an element of a
list
. By default the commands are concatenated into a string, with a new line inserted between each command.- name:
str
, optional The name of the
Field
instance created by the returned commands.- Parameter example:
name='var1'
- data_name:
str
, optional The name of the construct’s
Data
instance created by the returned commands.- Parameter example:
name='data1'
- header:
bool
, optional If True (the default) output a comment describing the components. If False no such comment is returned.
- representative_data:
- Returns
Examples
>>> q = cfdm.example_field(0) >>> print(q) Field: specific_humidity (ncvar%q) ---------------------------------- Data : specific_humidity(latitude(5), longitude(8)) 1 Cell methods : area: mean Dimension coords: latitude(5) = [-75.0, ..., 75.0] degrees_north : longitude(8) = [22.5, ..., 337.5] degrees_east : time(1) = [2019-01-01 00:00:00] >>> print(q.creation_commands()) # # field: specific_humidity field = cfdm.Field() field.set_properties({'Conventions': 'CF-1.10', 'project': 'research', 'standard_name': 'specific_humidity', 'units': '1'}) field.nc_set_variable('q') data = cfdm.Data([[0.007, 0.034, 0.003, 0.014, 0.018, 0.037, 0.024, 0.029], [0.023, 0.036, 0.045, 0.062, 0.046, 0.073, 0.006, 0.066], [0.11, 0.131, 0.124, 0.146, 0.087, 0.103, 0.057, 0.011], [0.029, 0.059, 0.039, 0.07, 0.058, 0.072, 0.009, 0.017], [0.006, 0.036, 0.019, 0.035, 0.018, 0.037, 0.034, 0.013]], units='1', dtype='f8') field.set_data(data) # # domain_axis: ncdim%lat c = cfdm.DomainAxis() c.set_size(5) c.nc_set_dimension('lat') field.set_construct(c, key='domainaxis0', copy=False) # # domain_axis: ncdim%lon c = cfdm.DomainAxis() c.set_size(8) c.nc_set_dimension('lon') field.set_construct(c, key='domainaxis1', copy=False) # # domain_axis: c = cfdm.DomainAxis() c.set_size(1) field.set_construct(c, key='domainaxis2', copy=False) # # dimension_coordinate: latitude c = cfdm.DimensionCoordinate() c.set_properties({'units': 'degrees_north', 'standard_name': 'latitude'}) c.nc_set_variable('lat') data = cfdm.Data([-75.0, -45.0, 0.0, 45.0, 75.0], units='degrees_north', dtype='f8') c.set_data(data) b = cfdm.Bounds() b.nc_set_variable('lat_bnds') data = cfdm.Data([[-90.0, -60.0], [-60.0, -30.0], [-30.0, 30.0], [30.0, 60.0], [60.0, 90.0]], units='degrees_north', dtype='f8') b.set_data(data) c.set_bounds(b) field.set_construct(c, axes=('domainaxis0',), key='dimensioncoordinate0', copy=False) # # dimension_coordinate: longitude c = cfdm.DimensionCoordinate() c.set_properties({'units': 'degrees_east', 'standard_name': 'longitude'}) c.nc_set_variable('lon') data = cfdm.Data([22.5, 67.5, 112.5, 157.5, 202.5, 247.5, 292.5, 337.5], units='degrees_east', dtype='f8') c.set_data(data) b = cfdm.Bounds() b.nc_set_variable('lon_bnds') data = cfdm.Data([[0.0, 45.0], [45.0, 90.0], [90.0, 135.0], [135.0, 180.0], [180.0, 225.0], [225.0, 270.0], [270.0, 315.0], [315.0, 360.0]], units='degrees_east', dtype='f8') b.set_data(data) c.set_bounds(b) field.set_construct(c, axes=('domainaxis1',), key='dimensioncoordinate1', copy=False) # # dimension_coordinate: time c = cfdm.DimensionCoordinate() c.set_properties({'units': 'days since 2018-12-01', 'standard_name': 'time'}) c.nc_set_variable('time') data = cfdm.Data([31.0], units='days since 2018-12-01', dtype='f8') c.set_data(data) field.set_construct(c, axes=('domainaxis2',), key='dimensioncoordinate2', copy=False) # # cell_method: mean c = cfdm.CellMethod() c.set_method('mean') c.set_axes(('area',)) field.set_construct(c) # # field data axes field.set_data_axes(('domainaxis0', 'domainaxis1')) >>> print(q.creation_commands(representative_data=True, namespace='', ... indent=4, header=False)) field = Field() field.set_properties({'Conventions': 'CF-1.10', 'project': 'research', 'standard_name': 'specific_humidity', 'units': '1'}) field.nc_set_variable('q') data = <Data(5, 8): [[0.007, ..., 0.013]] 1> # Representative data field.set_data(data) c = DomainAxis() c.set_size(5) c.nc_set_dimension('lat') field.set_construct(c, key='domainaxis0', copy=False) c = DomainAxis() c.set_size(8) c.nc_set_dimension('lon') field.set_construct(c, key='domainaxis1', copy=False) c = DomainAxis() c.set_size(1) field.set_construct(c, key='domainaxis2', copy=False) c = DimensionCoordinate() c.set_properties({'units': 'degrees_north', 'standard_name': 'latitude'}) c.nc_set_variable('lat') data = <Data(5): [-75.0, ..., 75.0] degrees_north> # Representative data c.set_data(data) b = Bounds() b.nc_set_variable('lat_bnds') data = <Data(5, 2): [[-90.0, ..., 90.0]] degrees_north> # Representative data b.set_data(data) c.set_bounds(b) field.set_construct(c, axes=('domainaxis0',), key='dimensioncoordinate0', copy=False) c = DimensionCoordinate() c.set_properties({'units': 'degrees_east', 'standard_name': 'longitude'}) c.nc_set_variable('lon') data = <Data(8): [22.5, ..., 337.5] degrees_east> # Representative data c.set_data(data) b = Bounds() b.nc_set_variable('lon_bnds') data = <Data(8, 2): [[0.0, ..., 360.0]] degrees_east> # Representative data b.set_data(data) c.set_bounds(b) field.set_construct(c, axes=('domainaxis1',), key='dimensioncoordinate1', copy=False) c = DimensionCoordinate() c.set_properties({'units': 'days since 2018-12-01', 'standard_name': 'time'}) c.nc_set_variable('time') data = <Data(1): [2019-01-01 00:00:00]> # Representative data c.set_data(data) field.set_construct(c, axes=('domainaxis2',), key='dimensioncoordinate2', copy=False) c = CellMethod() c.set_method('mean') c.set_axes(('area',)) field.set_construct(c) field.set_data_axes(('domainaxis0', 'domainaxis1'))