Exemplo n.º 1
0
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;

}
Exemplo n.º 6
0
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;
}
Exemplo n.º 11
0
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;
}
Exemplo n.º 21
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;
}
Exemplo n.º 22
0
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;
}
Exemplo n.º 26
0
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);
}
Exemplo n.º 27
0
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;
}
Exemplo n.º 28
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;
}