OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
DataHistogramRecord.cpp
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // "Copyright Centre National d'Etudes Spatiales"
4 //
5 // License: LGPL
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 //----------------------------------------------------------------------------
10 // $Id$
11 
12 #include "DataHistogramRecord.h"
13 
14 namespace ossimplugins
15 {
16 
18  _hist(NULL)
19 {
20 }
21 
23 {
24  if (_hist != NULL)
25  delete[] _hist;
26 }
27 
29  _hist_desc(rhs._hist_desc),
30  _nrec(rhs._nrec),
31  _tab_seq(rhs._tab_seq),
32  _nbin(rhs._nbin),
33  _ns_lin(rhs._ns_lin),
34  _ns_pix(rhs._ns_pix),
35  _ngrp_lin(rhs._ngrp_lin),
36  _ngrp_pix(rhs._ngrp_pix),
37  _nsamp_lin(rhs._nsamp_lin),
38  _nsamp_pix(rhs._nsamp_pix),
39  _min_smp(rhs._min_smp),
40  _max_smp(rhs._max_smp),
41  _mean_smp(rhs._mean_smp),
42  _std_smp(rhs._std_smp),
43  _smp_inc(rhs._smp_inc),
44  _min_hist(rhs._min_hist),
45  _max_hist(rhs._max_hist),
46  _mean_hist(rhs._mean_hist),
47  _std_hist(rhs._std_hist),
48  _nhist(rhs._nhist)
49 {
50  _hist = new int[rhs._nhist];
51  for (int i=0;i<rhs._nhist;i++)
52  {
53  _hist[i] = rhs._hist[i];
54  }
55 }
56 
58 {
59  _hist_desc = rhs._hist_desc;
60  _nrec = rhs._nrec;
61  _tab_seq = rhs._tab_seq;
62  _nbin = rhs._nbin;
63  _ns_lin = rhs._ns_lin;
64  _ns_pix = rhs._ns_pix;
65  _ngrp_lin = rhs._ngrp_lin;
66  _ngrp_pix = rhs._ngrp_pix;
67  _nsamp_lin = rhs._nsamp_lin;
68  _nsamp_pix = rhs._nsamp_pix;
69  _min_smp = rhs._min_smp;
70  _max_smp = rhs._max_smp;
71  _mean_smp = rhs._mean_smp;
72  _std_smp = rhs._std_smp;
73  _smp_inc = rhs._smp_inc;
74  _min_hist = rhs._min_hist;
75  _max_hist = rhs._max_hist;
76  _mean_hist = rhs._mean_hist;
77  _std_hist = rhs._std_hist;
78  _nhist = rhs._nhist;
79  return *this;
80 }
81 
83 {
84  os<<"hist_desc:"<<data._hist_desc.c_str()<<std::endl;
85 
86  os<<"nrec:"<<data._nrec<<std::endl;
87 
88  os<<"tab_seq:"<<data._tab_seq<<std::endl;
89 
90  os<<"nbin:"<<data._nbin<<std::endl;
91 
92  os<<"ns_lin:"<<data._ns_lin<<std::endl;
93 
94  os<<"ns_pix:"<<data._ns_pix<<std::endl;
95 
96  os<<"ngrp_lin:"<<data._ngrp_lin<<std::endl;
97 
98  os<<"ngrp_pix:"<<data._ngrp_pix<<std::endl;
99 
100  os<<"nsamp_lin:"<<data._nsamp_lin<<std::endl;
101 
102  os<<"nsamp_pix:"<<data._nsamp_pix<<std::endl;
103 
104  os<<"min_smp:"<<data._min_smp<<std::endl;
105 
106  os<<"max_smp:"<<data._max_smp<<std::endl;
107 
108  os<<"mean_smp:"<<data._mean_smp<<std::endl;
109 
110  os<<"std_smp:"<<data._std_smp<<std::endl;
111 
112  os<<"smp_inc:"<<data._smp_inc<<std::endl;
113 
114  os<<"min_hist:"<<data._min_hist<<std::endl;
115 
116  os<<"max_histd:"<<data._max_hist<<std::endl;
117 
118  os<<"mean_hist:"<<data._mean_hist<<std::endl;
119 
120  os<<"std_hist:"<<data._std_hist<<std::endl;
121 
122  os<<"nhist:"<<data._nhist<<std::endl;
123 
124  for(int i=0;i<data._nhist;i++)
125  {
126  os<<"his["<<i<<"]:"<<data._hist[i]<<std::endl;
127  }
128  return os;
129 }
130 
132 {
133  char buff[33];
134  buff[32] = '\0';
135 
136  is.read(buff,32);
137  data._hist_desc = buff;
138 
139  is.read(buff,4);
140  buff[4] = '\0';
141  data._nrec = atoi(buff);
142 
143  is.read(buff,4);
144  buff[4] = '\0';
145  data._tab_seq = atoi(buff);
146 
147  is.read(buff,8);
148  buff[8] = '\0';
149  data._nbin = atoi(buff);
150 
151  is.read(buff,8);
152  buff[8] = '\0';
153  data._ns_lin = atoi(buff);
154 
155  is.read(buff,8);
156  buff[8] = '\0';
157  data._ns_pix = atoi(buff);
158 
159  is.read(buff,8);
160  buff[8] = '\0';
161  data._ngrp_lin = atoi(buff);
162 
163  is.read(buff,8);
164  buff[8] = '\0';
165  data._ngrp_pix = atoi(buff);
166 
167  is.read(buff,8);
168  buff[8] = '\0';
169  data._nsamp_lin = atoi(buff);
170 
171  is.read(buff,8);
172  buff[8] = '\0';
173  data._nsamp_pix = atoi(buff);
174 
175  is.read(buff,16);
176  buff[16] = '\0';
177  data._min_smp = atof(buff);
178 
179  is.read(buff,16);
180  buff[16] = '\0';
181  data._max_smp = atof(buff);
182 
183  is.read(buff,16);
184  buff[16] = '\0';
185  data._mean_smp = atof(buff);
186 
187  is.read(buff,16);
188  buff[16] = '\0';
189  data._std_smp = atof(buff);
190 
191  is.read(buff,16);
192  buff[16] = '\0';
193  data._smp_inc = atof(buff);
194 
195  is.read(buff,16);
196  buff[16] = '\0';
197  data._min_hist = atof(buff);
198 
199  is.read(buff,16);
200  buff[16] = '\0';
201  data._max_hist = atof(buff);
202 
203  is.read(buff,16);
204  buff[16] = '\0';
205  data._mean_hist = atof(buff);
206 
207  is.read(buff,16);
208  buff[16] = '\0';
209  data._std_hist = atof(buff);
210 
211  is.read(buff,8);
212  buff[8] = '\0';
213  data._nhist = atoi(buff);
214 
215  if(data._hist != NULL)
216  {
217  delete[] data._hist;
218  }
219 
220  //for (int i=0;i<data._nhist;i++)
221  int nhist ;
222  if (data._nhist == 256)
223  { nhist = 256 ; } // Signal Data
224  else {nhist = 1024 ; } // Processed Data
225 
226  data._hist = new int[nhist];
227  for (int i=0;i<nhist;i++)
228  {
229  is.read(buff,8);
230  buff[8] = '\0';
231  data._hist[i] = atoi(buff);
232  }
233 
234  return is;
235 }
236 }
double _std_hist
Histogram standard deviation
int _ns_pix
Total number of pixels per line
This class is able to read a data histogram record.
int _ns_lin
Total number of lines
double _std_smp
Sample standard deviation
int _tab_seq
Table sequence number
int * _hist
Histogram table values.
double _mean_hist
Histogram mean value
double _min_smp
Minimum first bin
int _nhist
Histogram table size
int _ngrp_pix
Group size along pixel axis
int _nsamp_lin
Number of samples used per group along line axis
std::string _hist_desc
Histogram descriptor.
DataHistogramRecord & operator=(const DataHistogramRecord &rhs)
Copy operator.
std::ostream & operator<<(std::ostream &os, const AlosPalsarData &data)
int _nsamp_pix
Number of samples used per group along pixel
int _ngrp_lin
Group size along line axis
int _nbin
Total number of table bins
std::istream & operator>>(std::istream &is, AlosPalsarData &data)
double _mean_smp
Mean sample value
std::basic_istream< char > istream
Base class for char input streams.
Definition: ossimIosFwd.h:20
double _min_hist
Minimum histogram value
double _max_hist
Maximum histogram value
double _smp_inc
Sample value increment
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23