コード例 #1
0
ファイル: dataset_util.py プロジェクト: shunt16/dsbuilder
    def create_variable(dim_sizes, dtype, dim_names=None, attributes=None, fill_value=None):
        """
        Return default empty xarray Variable

        :type dim_sizes: list
        :param dim_sizes: dimension sizes as ints, i.e. [dim1_size, dim2_size, dim3_size] (e.g. [2,3,5])

        :type dtype: type
        :param dtype: numpy data type

        :type dim_names: list
        :param dim_names: (optional) dimension names as strings, i.e. ["dim1_name", "dim2_name", "dim3_size"]

        :type attributes: dict
        :param attributes: (optional) dictionary of variable attributes, e.g. standard_name

        :type fill_value: int/float
        :param fill_value: (optional) fill value (if None CF compliant value used)

        :return: Default empty variable
        :rtype: xarray.Variable
        """
        
        if fill_value is None:
            fill_value = DatasetUtil.get_default_fill_value(dtype)
        
        default_array = DatasetUtil.create_default_array(dim_sizes, dtype, fill_value=fill_value)

        if dim_names is None:
            variable = Variable(DEFAULT_DIM_NAMES[-len(dim_sizes):], default_array)
        else:
            variable = Variable(dim_names, default_array)

        variable.attrs["_FillValue"] = fill_value

        if attributes is not None:
            variable.attrs = {**variable.attrs, **attributes}

        return variable