static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_g1date* self = (grib_accessor_g1date*)a; int n = 0; self->century = grib_arguments_get_name(a->parent->h,c,n++); self->year = grib_arguments_get_name(a->parent->h,c,n++); self->month = grib_arguments_get_name(a->parent->h,c,n++); self->day = grib_arguments_get_name(a->parent->h,c,n++); }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_g1verificationdate* self = (grib_accessor_g1verificationdate*)a; int n = 0; self->date = grib_arguments_get_name(a->parent->h,c,n++); self->time = grib_arguments_get_name(a->parent->h,c,n++); self->step = grib_arguments_get_name(a->parent->h,c,n++); a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; }
static void init(grib_accessor* a,const long v, grib_arguments* args) { grib_accessor_data_g1complex_packing *self =(grib_accessor_data_g1complex_packing*)a; self->half_byte = grib_arguments_get_name(a->parent->h,args,self->carg++); self->N = grib_arguments_get_name(a->parent->h,args,self->carg++); self->packingType = grib_arguments_get_name(a->parent->h,args,self->carg++); self->ieee_packing = grib_arguments_get_name(a->parent->h,args,self->carg++); self->precision = grib_arguments_get_name(a->parent->h,args,self->carg++); self->edition=1; a->flags |= GRIB_ACCESSOR_FLAG_DATA; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_scale* self = (grib_accessor_scale*)a; int n = 0; self->value = grib_arguments_get_name(a->parent->h,c,n++); self->multiplier = grib_arguments_get_name(a->parent->h,c,n++); self->divisor = grib_arguments_get_name(a->parent->h,c,n++); self->truncating = grib_arguments_get_name(a->parent->h,c,n++); }
static void init(grib_accessor* a, const long len, grib_arguments* params) { int n=0; grib_accessor_codetable* self = (grib_accessor_codetable*)a; grib_action* act=(grib_action*)(a->creator); self->tablename = grib_arguments_get_string(a->parent->h,params,n++); self->masterDir = grib_arguments_get_name(a->parent->h,params,n++); self->localDir = grib_arguments_get_name(a->parent->h,params,n++); /*if (a->flags & GRIB_ACCESSOR_FLAG_STRING_TYPE) printf("-------- %s type string (%ld)\n",a->name,a->flags);*/ if (a->flags & GRIB_ACCESSOR_FLAG_TRANSIENT) { a->length = 0; if (!a->vvalue) a->vvalue = grib_context_malloc_clear(a->parent->h->context,sizeof(grib_virtual_value)); a->vvalue->type=grib_accessor_get_native_type(a); a->vvalue->length=len; if (act->default_value!=NULL) { const char* p = 0; size_t len = 1; long l; int ret=0; double d; char tmp[1024]; grib_expression* expression=grib_arguments_get_expression(a->parent->h,act->default_value,0); int type = grib_expression_native_type(a->parent->h,expression); switch(type) { case GRIB_TYPE_DOUBLE: grib_expression_evaluate_double(a->parent->h,expression,&d); grib_pack_double(a,&d,&len); break; case GRIB_TYPE_LONG: grib_expression_evaluate_long(a->parent->h,expression,&l); grib_pack_long(a,&l,&len); break; default: len = sizeof(tmp); p = grib_expression_evaluate_string(a->parent->h,expression,tmp,&len,&ret); if (ret != GRIB_SUCCESS) { grib_context_log(a->parent->h->context,GRIB_LOG_FATAL, "unable to evaluate %s as string",a->name); } len = strlen(p)+1; pack_string(a,p,&len); break; } } } else a->length = len; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { int n=0; grib_accessor_second_order_bits_per_value* self = (grib_accessor_second_order_bits_per_value*)a; self->values = grib_arguments_get_name(a->parent->h,c,n++); self->binaryScaleFactor = grib_arguments_get_name(a->parent->h,c,n++); self->decimalScaleFactor = grib_arguments_get_name(a->parent->h,c,n++); self->bitsPerValue=0; a->length=0; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_g1forecastmonth* self = (grib_accessor_g1forecastmonth*)a; int n = 0; self->verification_yearmonth = grib_arguments_get_name(a->parent->h,c,n++); self->base_date = grib_arguments_get_name(a->parent->h,c,n++); self->day = grib_arguments_get_name(a->parent->h,c,n++); self->hour = grib_arguments_get_name(a->parent->h,c,n++); self->fcmonth = grib_arguments_get_name(a->parent->h,c,n++); }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_g1_increment* self = (grib_accessor_g1_increment*)a; int n = 0; self->directionIncrementGiven = grib_arguments_get_name(a->parent->h,c,n++); self->directionIncrement = grib_arguments_get_name(a->parent->h,c,n++); self->first = grib_arguments_get_name(a->parent->h,c,n++); self->last = grib_arguments_get_name(a->parent->h,c,n++); self->numberOfPoints = grib_arguments_get_name(a->parent->h,c,n++); }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_step_in_units* self = (grib_accessor_step_in_units*)a; int n = 0; self->codedStep = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->codedUnits = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->stepUnits = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->indicatorOfUnitForTimeRange = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->lengthOfTimeRange = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_spectral_truncation* self = (grib_accessor_spectral_truncation*)a; int n = 0; self->J = grib_arguments_get_name(a->parent->h,c,n++); self->K = grib_arguments_get_name(a->parent->h,c,n++); self->M = grib_arguments_get_name(a->parent->h,c,n++); self->T = grib_arguments_get_name(a->parent->h,c,n++); a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; }
static void init(grib_accessor* a, const long len , grib_arguments* arg ) { grib_accessor_md5* self = (grib_accessor_md5*)a; int n=0; self->offset = grib_arguments_get_name(a->parent->h,arg,n++); self->length = grib_arguments_get_name(a->parent->h,arg,n++); a->length = 0; a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; a->flags |= GRIB_ACCESSOR_FLAG_EDITION_SPECIFIC; }
static void init(grib_accessor* a,const long v, grib_arguments* args) { grib_accessor_data_secondary_bitmap *self =(grib_accessor_data_secondary_bitmap*)a; self->primary_bitmap = grib_arguments_get_name(grib_handle_of_accessor(a),args,0); self->secondary_bitmap = grib_arguments_get_name(grib_handle_of_accessor(a),args,1); self->missing_value = grib_arguments_get_name(grib_handle_of_accessor(a),args,2); self->expand_by = grib_arguments_get_name(grib_handle_of_accessor(a),args,3); a->length = 0; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_julian_day* self = (grib_accessor_julian_day*)a; int n=0; self->date = grib_arguments_get_name(a->parent->h,c,n++); self->hour = grib_arguments_get_name(a->parent->h,c,n++); self->minute = grib_arguments_get_name(a->parent->h,c,n++); self->second = grib_arguments_get_name(a->parent->h,c,n++); a->length=0; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { int n=0; grib_accessor_number_of_points* self = (grib_accessor_number_of_points*)a; self->ni = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->nj = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->plpresent = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->pl = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; a->length=0; }
static void init(grib_accessor* a, const long len , grib_arguments* arg ) { grib_accessor_bitmap* self = (grib_accessor_bitmap*)a; int n = 0; self->tableReference = grib_arguments_get_name(a->parent->h,arg,n++); self->missing_value = grib_arguments_get_name(a->parent->h,arg,n++); self->offsetbsec = grib_arguments_get_name(a->parent->h,arg,n++); self->sLength = grib_arguments_get_name(a->parent->h,arg,n++); compute_size(a); }
static int init(grib_nearest* nearest,grib_handle* h,grib_arguments* args) { grib_nearest_reduced* self = (grib_nearest_reduced*) nearest; self->Nj = grib_arguments_get_name(h,args,self->cargs++); self->pl = grib_arguments_get_name(h,args,self->cargs++); self->j=(int*)grib_context_malloc(h->context,2*sizeof(int)); if (!self->j) return GRIB_OUT_OF_MEMORY; self->k=(int*)grib_context_malloc( nearest->context,4*sizeof(int)); if (!self->k) return GRIB_OUT_OF_MEMORY; return 0; }
static void init(grib_accessor* a,const long l, grib_arguments* args) { int n=0; grib_accessor_decimal_precision* self= (grib_accessor_decimal_precision*)a; self->bits_per_value=grib_arguments_get_name(a->parent->h,args,n++); self->decimal_scale_factor=grib_arguments_get_name(a->parent->h,args,n++); self->changing_precision=grib_arguments_get_name(a->parent->h,args,n++); self->values=grib_arguments_get_name(a->parent->h,args,n++); a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; a->length=0; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { int n=0; grib_accessor_gds_is_present* self = (grib_accessor_gds_is_present*)a; self->gds_present = grib_arguments_get_name(a->parent->h,c,n++); self->grid_definition = grib_arguments_get_name(a->parent->h,c,n++); self->bitmap_present = grib_arguments_get_name(a->parent->h,c,n++); self->values = grib_arguments_get_name(a->parent->h,c,n++); a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; a->flags |= GRIB_ACCESSOR_FLAG_HIDDEN; a->length=0; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { int n=0; grib_accessor_g1number_of_coded_values_sh_simple* self = (grib_accessor_g1number_of_coded_values_sh_simple*)a; self->bitsPerValue = grib_arguments_get_name(a->parent->h,c,n++); self->offsetBeforeData = grib_arguments_get_name(a->parent->h,c,n++); self->offsetAfterData = grib_arguments_get_name(a->parent->h,c,n++); self->unusedBits = grib_arguments_get_name(a->parent->h,c,n++); self->numberOfValues = grib_arguments_get_name(a->parent->h,c,n++); a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; a->length=0; }
static void init(grib_accessor* a,const long v, grib_arguments* args) { int n=0; grib_accessor_data_apply_boustrophedonic *self =(grib_accessor_data_apply_boustrophedonic*)a; self->values = grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); self->numberOfRows = grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); self->numberOfColumns = grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); self->numberOfPoints = grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); self->pl = grib_arguments_get_name(grib_handle_of_accessor(a),args,n++); a->length = 0; }
static int init(grib_iterator* i,grib_handle* h,grib_arguments* args) { grib_iterator_regular* self = (grib_iterator_regular*)i; int ret = GRIB_SUCCESS; long nap; long nam; double idir; double lof,lol; long loi; const char* longoffirst = grib_arguments_get_name(h,args,self->carg++); const char* idirec = grib_arguments_get_name(h,args,self->carg++); const char* nalpar = grib_arguments_get_name(h,args,self->carg++); const char* nalmer = grib_arguments_get_name(h,args,self->carg++); const char* iScansNegatively = grib_arguments_get_name(h,args,self->carg++); if((ret = grib_get_double_internal(h,longoffirst, &lof))) return ret; if((ret = grib_get_double_internal(h,"longitudeOfLastGridPointInDegrees", &lol))) return ret; if((ret = grib_get_double_internal(h,idirec, &idir))) return ret; if((ret = grib_get_long_internal(h,nalpar, &nap))) return ret; if((ret = grib_get_long_internal(h,nalmer, &nam))) return ret; if((ret = grib_get_long_internal(h,iScansNegatively,&self->iScansNegatively))) return ret; idir=fabs(lof-lol)/(nap-1); if (self->iScansNegatively) { idir=-idir; } else { if (lof+(nap-2)*idir>360) lof-=360; else if (lof+nap*idir>360) idir=360.0/(float)nap; } self->nap = nap; self->nam = nam; self->las = grib_context_malloc(h->context,nam*sizeof(double)); self->los = grib_context_malloc(h->context,nap*sizeof(double)); for( loi = 0; loi < nap; loi++ ) { self->los[loi] = lof; lof += idir ; } return ret; }
static int init(grib_nearest* nearest,grib_handle* h,grib_arguments* args) { grib_nearest_gen* self = (grib_nearest_gen*) nearest; int ret = GRIB_SUCCESS; self->cargs = 1; self->values_key = grib_arguments_get_name(h,args,self->cargs++); self->radius = grib_arguments_get_name(h,args,self->cargs++); nearest->values=NULL; nearest->context=h->context; return ret; }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_simple_packing_error* self = (grib_accessor_simple_packing_error*)a; int n = 0; self->bitsPerValue = grib_arguments_get_name(a->parent->h,c,n++); self->binaryScaleFactor = grib_arguments_get_name(a->parent->h,c,n++); self->decimalScaleFactor = grib_arguments_get_name(a->parent->h,c,n++); self->referenceValue = grib_arguments_get_name(a->parent->h,c,n++); self->floatType = grib_arguments_get_name(a->parent->h,c,n++); a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; a->length=0; }
static void init(grib_accessor* a, const long len, grib_arguments* params) { int n=0; grib_accessor_dictionary* self = (grib_accessor_dictionary*)a; self->dictionary = grib_arguments_get_string(grib_handle_of_accessor(a),params,n++); self->key = grib_arguments_get_name(grib_handle_of_accessor(a),params,n++); self->column = grib_arguments_get_long(grib_handle_of_accessor(a),params,n++); self->masterDir = grib_arguments_get_name(grib_handle_of_accessor(a),params,n++); self->localDir = grib_arguments_get_name(grib_handle_of_accessor(a),params,n++); a->length = 0; a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; }
static void init(grib_accessor* a, const long len, grib_arguments* params) { grib_accessor_codetable_title* self = (grib_accessor_codetable_title*)a; int n=0; self->codetable = grib_arguments_get_name(a->parent->h,params,n++); a->length=0; a->flags|= GRIB_ACCESSOR_FLAG_READ_ONLY; }
static void init(grib_accessor* a, const long len , grib_arguments* arg ) { grib_accessor_bit *ac = (grib_accessor_bit*) a; a->length = 0; ac->owner = grib_arguments_get_name(a->parent->h,arg,0); ac->bit_index = grib_arguments_get_long(a->parent->h,arg,1); }
static void init(grib_accessor* a,const long l, grib_arguments* c) { grib_accessor_bits* self = (grib_accessor_bits*)a; grib_expression* e=NULL; int n = 0; self->argument = grib_arguments_get_name(grib_handle_of_accessor(a),c,n++); self->start = grib_arguments_get_long(grib_handle_of_accessor(a),c,n++); self->len = grib_arguments_get_long(grib_handle_of_accessor(a),c,n++); e=grib_arguments_get_expression(grib_handle_of_accessor(a),c,n++); if (e) { grib_expression_evaluate_double(grib_handle_of_accessor(a),e,&(self->referenceValue)); self->referenceValuePresent=1; } else { self->referenceValuePresent=0; } self->scale = 1; if (self->referenceValuePresent) { self->scale=grib_arguments_get_double(grib_handle_of_accessor(a),c,n++); } Assert(self->len <= sizeof(long)*8); a->length=0; }
static int create_accessor(grib_section* p, grib_action* act,grib_loader *h) { grib_action_put* a = ( grib_action_put*)act; grib_section* ts = NULL; grib_accessor* ga = NULL; ga = grib_find_accessor(p->h, grib_arguments_get_name(p->h,a->args,1)); if(ga) ts = ga->sub_section; /* ts = grib_get_sub_section(ga); */ else return GRIB_BUFFER_TOO_SMALL; if(ts){ ga = grib_accessor_factory( ts, act,0,a->args); if(ga)grib_push_accessor(ga,ts->block); else return GRIB_BUFFER_TOO_SMALL; } else{ grib_context_log(act->context, GRIB_LOG_ERROR, "Action_class_put : create_accessor_buffer : No Section named %s to export %s ", grib_arguments_get_name(p->h,a->args,1), grib_arguments_get_name(p->h,a->args,0)); } return GRIB_SUCCESS; }
static int unpack_double(grib_accessor* a, double* val, size_t *len) { grib_accessor_round* self = (grib_accessor_round*)a; int ret = GRIB_SUCCESS; size_t replen = 0; double rounding_precision = 0; double rounded = 0; double toround = 0; const char* oval = NULL; oval = grib_arguments_get_name(a->parent->h,self->arg,0); if( (ret = grib_get_double_internal(a->parent->h, oval, &toround)) != 0) return ret; rounding_precision = grib_arguments_get_long(a->parent->h,self->arg,1); rounded = floor(rounding_precision * toround + 0.5) / rounding_precision; *len = replen; *val = rounded; return ret; }
static void init(grib_accessor* a,const long v, grib_arguments* args) { grib_accessor_data_g2shsimple_packing *self =(grib_accessor_data_g2shsimple_packing*)a; self->numberOfValues = grib_arguments_get_name(grib_handle_of_accessor(a),args,2); a->flags |= GRIB_ACCESSOR_FLAG_DATA; }