18 #ifndef _das_dimension_h_
19 #define _das_dimension_h_
29 #define DASDIM_MAXDEP 16
30 #define DASDIM_MAXVAR 16
31 #define DASDIM_MAX_VEC_AXES 4
32 #define DASDIM_AXES_SZ 3
78 #ifndef _das_dimension_c_
79 extern const char* DASVAR_CENTER;
80 extern const char* DASVAR_MIN;
81 extern const char* DASVAR_MAX;
82 extern const char* DASVAR_WIDTH;
83 extern const char* DASVAR_MEAN;
84 extern const char* DASVAR_MEDIAN;
85 extern const char* DASVAR_MODE;
86 extern const char* DASVAR_REF;
87 extern const char* DASVAR_OFFSET;
88 extern const char* DASVAR_MAXERR;
89 extern const char* DASVAR_MINERR;
90 extern const char* DASVAR_UNCERT;
91 extern const char* DASVAR_STD_DEV;
92 extern const char* DASVAR_SPREAD;
93 extern const char* DASVAR_WEIGHT;
99 #define DASDIM_ROLE_SZ 32
101 enum dim_type { DASDIM_UNK = 0, DASDIM_COORD, DASDIM_DATA };
128 typedef struct das_dim {
145 ubyte axes[DASDIM_AXES][3];
151 char frame[DASFRM_NAME_SZ];
160 DasVar* aVars[DASDIM_MAXVAR];
161 char aRoles[DASDIM_MAXVAR][DASDIM_ROLE_SZ];
202 DAS_API
DasDim*
new_DasDim(
const char* sDim,
const char* sName,
enum dim_type dtype,
int nRank);
214 #define DasDim_id(P) ((const char*)(P->sId))
227 #define DasDim_dim(P) ((const char*)(P->sDim))
287 #define DasDim_numVars(P) ((P)->uVars);
299 #define DasDim_getVarByIdx(P, I) ( (I)<((P)->uVars) ? ((const DasVar*)((P)->aVars[(I)])) : NULL )
311 #define DasDim_getRoleByIdx(P, I) ( (I)<((P)->uVars) ? ((const char*)((P)->aRoles[(I)])) : NULL )
Base structure for Stream Header Items.
Definition: descriptor.h:74
Das Physical Dimensions.
Definition: dimension.h:128
DAS_API ptrdiff_t DasDim_lengthIn(const DasDim *pThis, int nIdx, ptrdiff_t *pLoc)
Return the current max value index value + 1 for any partial index.
DAS_API void del_DasDim(DasDim *pThis)
Delete a dimension and drop the reference count on all contained variables.
DAS_API DasDim * new_DasDim(const char *sDim, const char *sName, enum dim_type dtype, int nRank)
Create a new dimension (not as impressive as it sounds)
DAS_API const DasVar * DasDim_getPointVar(const DasDim *pThis)
Get a variable poviding single point values in a dimension.
DAS_API const DasVar * DasDim_getVar(const DasDim *pThis, const char *sRole)
Get a variable providing values for a particular role in the dimension.
DAS_API char * DasDim_toStr(const DasDim *pThis, char *sBuf, int nLen)
Print an information string describing a dimension.
DAS_API int DasDim_shape(const DasDim *pThis, ptrdiff_t *pShape)
Get the maximum extent of this dimension in index space.
DAS_API DasVar * DasDim_popVar(DasDim *pThis, const char *role)
Remove a variable by role from a dimensions.
DAS_API bool DasDim_addVar(DasDim *pThis, const char *sRole, DasVar *pVar)
Add a variable to a dimension.
void * pUser
User data pointer.
Definition: dimension.h:178
Das2 fexible variables.
Definition: variable.h:247
#define DAS_MAX_ID_BUFSZ
The size of an char buffer large enough to hold valid object IDs.
Definition: util.h:311
correlated data and coordinate variables