1 //---
2 // File: ossimRsmida.cpp
3 //
4 // License: MIT
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //---
8 
9 #include <ossim/support_data/ossimRsmida.h>
10 #include <ossim/base/ossimKeywordlist.h>
11 #include <ossim/base/ossimNotify.h>
12 #include <ossim/base/ossimTrace.h>
13 #include <ossim/support_data/ossimNitfRsmidaTag.h>
14 
15 static const ossimTrace traceDebug("ossimRsmida:debug");
16 
17 static std::string IID_KW     = "iid";
18 static std::string EDITION_KW = "edition";
19 
20 static std::string ISID_KW = "isid";
21 static std::string SID_KW  = "sid";
22 static std::string STID_KW = "stid";
23 
24 static std::string YEAR_KW   = "year";
operator <<(std::ostream & out,const ossimRpfTocEntry & data)25 static std::string MONTH_KW  = "month";
26 static std::string DAY_KW    = "day";
27 static std::string HOUR_KW   = "hour";
28 static std::string MINUTE_KW = "minute";
29 static std::string SECOND_KW = "second";
30 
31 static std::string NRG_KW = "nrg";
ossimRpfTocEntry()32 static std::string NCG_KW = "ncg";
33 
34 static std::string TRG_KW = "trg";
35 static std::string TCG_KW = "tcg";
36 
parseStream(std::istream & in,ossimByteOrder byteOrder)37 static std::string GRNDD_KW = "grndd";
38 
39 static std::string XUOR_KW = "xuor";
40 static std::string YUOR_KW = "yuor";
41 static std::string ZUOR_KW = "zuor";
42 
43 static std::string XUXR_KW = "xuxr";
44 static std::string XUYR_KW = "xuyr";
45 static std::string XUZR_KW = "xuzr";
46 
47 static std::string YUXR_KW = "yuxr";
48 static std::string YUYR_KW = "yuyr";
49 static std::string YUZR_KW = "yuzr";
50 
51 static std::string ZUXR_KW = "zuxr";
52 static std::string ZUYR_KW = "zuyr";
53 static std::string ZUZR_KW = "zuzr";
54 
55 static std::string V1X_KW = "v1x";
56 static std::string V1Y_KW = "v1y";
57 static std::string V1Z_KW = "v1z";
58 
59 static std::string V2X_KW = "v2x";
print(std::ostream & out,const std::string & prefix) const60 static std::string V2Y_KW = "v2y";
61 static std::string V2Z_KW = "v2z";
62 
63 static std::string V3X_KW = "v3x";
64 static std::string V3Y_KW = "v3y";
65 static std::string V3Z_KW = "v3z";
66 
67 static std::string V4X_KW = "v4x";
68 static std::string V4Y_KW = "v4y";
69 static std::string V4Z_KW = "v4z";
70 
71 static std::string V5X_KW = "v5x";
72 static std::string V5Y_KW = "v5y";
73 static std::string V5Z_KW = "v5z";
74 
75 static std::string V6X_KW = "v6x";
76 static std::string V6Y_KW = "v6y";
77 static std::string V6Z_KW = "v6z";
78 
79 static std::string V7X_KW = "v7x";
80 static std::string V7Y_KW = "v7y";
81 static std::string V7Z_KW = "v7z";
getNumberOfFramesHorizontal() const82 
83 static std::string V8X_KW = "v8x";
84 static std::string V8Y_KW = "v8y";
85 static std::string V8Z_KW = "v8z";
86 
getNumberOfFramesVertical() const87 static std::string GRPX_KW = "grpx";
88 static std::string GRPY_KW = "grpy";
89 static std::string GRPZ_KW = "grpz";
90 
91 static std::string FULLR_KW = "fullr";
getNumberOfLines() const92 static std::string FULLC_KW = "fullc";
93 
94 static std::string MINR_KW = "minr";
95 static std::string MAXR_KW = "maxr";
96 static std::string MINC_KW = "minc";
getNumberOfSamples() const97 static std::string MAXC_KW = "maxc";
98 
99 static std::string IE0_KW = "ie0";
100 static std::string IER_KW = "ier";
101 static std::string IEC_KW = "iec";
getNumberOfBands() const102 static std::string IERR_KW = "ierr";
103 static std::string IERC_KW = "ierc";
104 static std::string IECC_KW = "iecc";
105 
106 static std::string IA0_KW = "ia0";
107 static std::string IAR_KW = "iar";
108 static std::string IAC_KW = "iac";
109 static std::string IARR_KW = "iarr";
110 static std::string IARC_KW = "iarc";
111 static std::string IACC_KW = "iacc";
112 
113 static std::string SPX_KW = "spx";
114 static std::string SVX_KW = "svx";
115 static std::string SAX_KW = "sax";
116 
getBoundingRect(ossimIrect & rect) const117 static std::string SPY_KW = "spy";
118 static std::string SVY_KW = "svy";
119 static std::string SAY_KW = "say";
120 
121 static std::string SPZ_KW = "spz";
getBoundaryInformation() const122 static std::string SVZ_KW = "svz";
123 static std::string SAZ_KW = "saz";
124 
125 ossimRsmida::ossimRsmida()
126    :
setEntry(const ossimRpfFrameEntry & entry,long row,long col)127    m_iid(),
128    m_edition(),
129 
130    m_isid(),
131    m_sid(),
132    m_stid(),
133 
134    m_year(0),
135    m_month(0),
136    m_day(0),
137    m_hour(0),
138    m_minute(0),
139    m_second(0.0),
140 
141    m_nrg(0),
142    m_ncg(0),
143 
144    m_trg(0.0),
145    m_tcg(0.0),
146 
147    m_grndd('\0'),
148 
149    m_xuor(0.0),
150    m_yuor(0.0),
151    m_zuor(0.0),
152 
153    m_xuxr(0.0),
154    m_xuyr(0.0),
155    m_xuzr(0.0),
156 
157    m_yuxr(0.0),
158    m_yuyr(0.0),
159    m_yuzr(0.0),
160 
161    m_zuxr(0.0),
162    m_zuyr(0.0),
163    m_zuzr(0.0),
164 
165    m_v1x(0.0),
166    m_v1y(0.0),
167    m_v1z(0.0),
168 
169    m_v2x(0.0),
170    m_v2y(0.0),
171    m_v2z(0.0),
172 
173    m_v3x(0.0),
174    m_v3y(0.0),
175    m_v3z(0.0),
176 
177    m_v4x(0.0),
178    m_v4y(0.0),
179    m_v4z(0.0),
180 
181    m_v5x(0.0),
182    m_v5y(0.0),
183    m_v5z(0.0),
184 
185    m_v6x(0.0),
186    m_v6y(0.0),
187    m_v6z(0.0),
188 
189    m_v7x(0.0),
190    m_v7y(0.0),
191    m_v7z(0.0),
192 
193    m_v8x(0.0),
194    m_v8y(0.0),
195    m_v8z(0.0),
196 
197    m_grpx(0.0),
198    m_grpy(0.0),
199    m_grpz(0.0),
200 
201    m_fullr(0),
202    m_fullc(0),
203 
204    m_minr(0),
205    m_maxr(0),
206    m_minc(0),
207    m_maxc(0),
208 
209    m_ie0(0.0),
210    m_ier(0.0),
211    m_iec(0.0),
212    m_ierr(0.0),
213    m_ierc(0.0),
214    m_iecc(0.0),
215 
216    m_ia0(0.0),
217    m_iar(0.0),
218    m_iac(0.0),
219    m_iarr(0.0),
220    m_iarc(0.0),
221    m_iacc(0.0),
222 
223    m_spx(0.0),
224    m_svx(0.0),
225    m_sax(0.0),
226 
227    m_spy(0.0),
228    m_svy(0.0),
229    m_say(0.0),
230 
231    m_spz(0.0),
232    m_svz(0.0),
233    m_saz(0.0)
234 {
235 }
236 
237 ossimRsmida::ossimRsmida( const ossimRsmida& obj )
238    :
239    m_iid( obj.m_iid ),
240    m_edition( obj.m_edition ),
241 
242    m_isid( obj.m_isid ),
243    m_sid( obj.m_sid ),
244    m_stid( obj.m_stid ),
245 
246    m_year( obj.m_year ),
getDecimalDegreesPerPixel(ossimDpt & scale) const247    m_month( obj.m_month ),
248    m_day( obj.m_day ),
249    m_hour( obj.m_hour ),
250    m_minute( obj.m_minute ),
251    m_second( obj.m_second ),
252 
253    m_nrg( obj.m_nrg ),
254    m_ncg( obj.m_ncg ),
255 
256    m_trg( obj.m_trg ),
257    m_tcg( obj.m_tcg ),
258 
259    m_grndd( obj.m_grndd ),
260 
261    m_xuor( obj.m_xuor ),
262    m_yuor( obj.m_yuor ),
263    m_zuor( obj.m_zuor ),
264 
265    m_xuxr( obj.m_xuxr ),
266    m_xuyr( obj.m_xuyr ),
267    m_xuzr( obj.m_xuzr ),
268 
269    m_yuxr( obj.m_yuxr ),
270    m_yuyr( obj.m_yuyr ),
271    m_yuzr( obj.m_yuzr ),
272 
273    m_zuxr( obj.m_zuxr ),
274    m_zuyr( obj.m_zuyr ),
275    m_zuzr( obj.m_zuzr ),
276 
277    m_v1x( obj.m_v1x ),
278    m_v1y( obj.m_v1y ),
279    m_v1z( obj.m_v1z ),
280 
281    m_v2x( obj.m_v2x ),
282    m_v2y( obj.m_v2y ),
283    m_v2z( obj.m_v2z ),
284 
285    m_v3x( obj.m_v3x ),
286    m_v3y( obj.m_v3y ),
287    m_v3z( obj.m_v3z ),
288 
289    m_v4x( obj.m_v4x ),
290    m_v4y( obj.m_v4y ),
291    m_v4z( obj.m_v4z ),
292 
293    m_v5x( obj.m_v5x ),
294    m_v5y( obj.m_v5y ),
295    m_v5z( obj.m_v5z ),
296 
297    m_v6x( obj.m_v6x ),
298    m_v6y( obj.m_v6y ),
299    m_v6z( obj.m_v6z ),
300 
301    m_v7x( obj.m_v7x ),
302    m_v7y( obj.m_v7y ),
303    m_v7z( obj.m_v7z ),
304 
305    m_v8x( obj.m_v8x ),
306    m_v8y( obj.m_v8y ),
307    m_v8z( obj.m_v8z ),
308 
309    m_grpx( obj.m_grpx ),
310    m_grpy( obj.m_grpy ),
311    m_grpz( obj.m_grpz ),
312 
313    m_fullr( obj.m_fullr ),
314    m_fullc( obj.m_fullc ),
315 
316    m_minr( obj.m_minr ),
317    m_maxr( obj.m_maxr ),
318    m_minc( obj.m_minc ),
319    m_maxc( obj.m_maxc ),
320 
321    m_ie0( obj.m_ie0 ),
322    m_ier( obj.m_ier ),
323    m_iec( obj.m_iec ),
324 
325    m_ierr( obj.m_ierr ),
326    m_ierc( obj.m_ierc ),
327    m_iecc( obj.m_iecc ),
328 
329    m_ia0( obj.m_ia0 ),
330    m_iar( obj.m_iar ),
331    m_iac( obj.m_iac ),
332 
333    m_iarr( obj.m_iarr ),
334    m_iarc( obj.m_iarc ),
335    m_iacc( obj.m_iacc ),
336 
337    m_spx( obj.m_spx ),
338    m_svx( obj.m_svx ),
339    m_sax( obj.m_sax ),
340 
341    m_spy( obj.m_spy ),
342    m_svy( obj.m_svy ),
343    m_say( obj.m_say ),
344 
345    m_spz( obj.m_spz ),
346    m_svz( obj.m_svz ),
347    m_saz( obj.m_saz )
348 {
349 }
350 
351 const ossimRsmida& ossimRsmida::operator=( const ossimRsmida& rhs )
352 {
353    if (this != &rhs)
354    {
355       m_iid = rhs.m_iid;
356       m_edition = rhs.m_edition;
357 
358       m_isid = rhs.m_isid;
359       m_sid  = rhs.m_sid;
360       m_stid = rhs.m_stid;
361 
362       m_year   = rhs.m_year;
363       m_month  = rhs.m_month;
364       m_day    = rhs.m_day;
365       m_hour   = rhs.m_hour;
366       m_minute = rhs.m_minute;
367       m_second = rhs.m_second;
368 
369       m_nrg = rhs.m_nrg;
370       m_ncg = rhs.m_ncg;
371 
372       m_trg = rhs.m_trg;
373       m_tcg = rhs.m_tcg;
374 
375       m_grndd = rhs.m_grndd;
376 
377       m_xuor = rhs.m_xuor;
378       m_yuor = rhs.m_yuor;
379       m_zuor = rhs.m_zuor;
380 
381       m_xuxr = rhs.m_xuxr;
382       m_xuyr = rhs.m_xuyr;
383       m_xuzr = rhs.m_xuzr;
384 
385       m_yuxr = rhs.m_yuxr;
386       m_yuyr = rhs.m_yuyr;
387       m_yuzr = rhs.m_yuzr;
388 
389       m_zuxr = rhs.m_zuxr;
390       m_zuyr = rhs.m_zuyr;
391       m_zuzr = rhs.m_zuzr;
392 
393       m_v1x = rhs.m_v1x;
394       m_v1y = rhs.m_v1y;
395       m_v1z = rhs.m_v1z;
396 
397       m_v2x = rhs.m_v2x;
398       m_v2y = rhs.m_v2y;
399       m_v2z = rhs.m_v2z;
400 
401       m_v3x = rhs.m_v3x;
402       m_v3y = rhs.m_v3y;
403       m_v3z = rhs.m_v3z;
404 
405       m_v4x = rhs.m_v4x;
406       m_v4y = rhs.m_v4y;
407       m_v4z = rhs.m_v4z;
408 
409       m_v5x = rhs.m_v5x;
410       m_v5y = rhs.m_v5y;
411       m_v5z = rhs.m_v5z;
412 
413       m_v6x = rhs.m_v6x;
414       m_v6y = rhs.m_v6y;
415       m_v6z = rhs.m_v6z;
416 
417       m_v7x = rhs.m_v7x;
418       m_v7y = rhs.m_v7y;
419       m_v7z = rhs.m_v7z;
420 
421       m_v8x = rhs.m_v8x;
422       m_v8y = rhs.m_v8y;
423       m_v8z = rhs.m_v8z;
424 
425       m_grpx = rhs.m_grpx;
426       m_grpy = rhs.m_grpy;
427       m_grpz = rhs.m_grpz;
428 
429       m_fullr = rhs.m_fullr;
430       m_fullc = rhs.m_fullc;
431 
432       m_minr = rhs.m_minr;
433       m_maxr = rhs.m_maxr;
434       m_minc = rhs.m_minc;
435       m_maxc = rhs.m_maxc;
436 
437       m_ie0 = rhs.m_ie0;
438       m_ier = rhs.m_ier;
439       m_iec = rhs.m_iec;
440 
441       m_ierr = rhs.m_ierr;
442       m_ierc = rhs.m_ierc;
443       m_iecc = rhs.m_iecc;
444 
445       m_ia0 = rhs.m_ia0;
446       m_iar = rhs.m_iar;
447       m_iac = rhs.m_iac;
448 
449       m_iarr = rhs.m_iarr;
450       m_iarc = rhs.m_iarc;
451       m_iacc = rhs.m_iacc;
452 
453       m_spx = rhs.m_spx;
454       m_svx = rhs.m_svx;
455       m_sax = rhs.m_sax;
456 
457       m_spy = rhs.m_spy;
458       m_svy = rhs.m_svy;
459       m_say = rhs.m_say;
460 
461       m_spz = rhs.m_spz;
462       m_svz = rhs.m_svz;
463       m_saz = rhs.m_saz;
464    }
465    return *this;
466 }
467 
468 void ossimRsmida::saveState( ossimKeywordlist& kwl,
469                              const std::string& prefix ) const
470 {
471    std::string pfx = prefix + std::string("rsmida.");
472 
473    kwl.add(pfx.c_str(), IID_KW.c_str(), m_iid.c_str());
474    kwl.add(pfx.c_str(), EDITION_KW.c_str(), m_edition.c_str());
475 
476    kwl.add(pfx.c_str(), ISID_KW.c_str(), m_isid.c_str());
477    kwl.add(pfx.c_str(), SID_KW.c_str(), m_sid.c_str());
478    kwl.add(pfx.c_str(), STID_KW.c_str(), m_stid.c_str());
479 
480    kwl.add(pfx.c_str(), YEAR_KW.c_str(), m_year);
481    kwl.add(pfx.c_str(), MONTH_KW.c_str(), m_month);
482    kwl.add(pfx.c_str(), DAY_KW.c_str(), m_day);
483    kwl.add(pfx.c_str(), HOUR_KW.c_str(), m_hour);
484    kwl.add(pfx.c_str(), MINUTE_KW.c_str(), m_minute);
485    kwl.add(pfx.c_str(), SECOND_KW.c_str(), m_second);
486 
487    kwl.add(pfx.c_str(), NRG_KW.c_str(), m_nrg);
488    kwl.add(pfx.c_str(), NCG_KW.c_str(), m_ncg);
489 
490    kwl.add(pfx.c_str(), TRG_KW.c_str(), m_trg);
491    kwl.add(pfx.c_str(), TCG_KW.c_str(), m_tcg);
492 
493    kwl.add(pfx.c_str(), GRNDD_KW.c_str(), m_grndd);
494 
495    kwl.add(pfx.c_str(), XUOR_KW.c_str(), m_xuor);
496    kwl.add(pfx.c_str(), YUOR_KW.c_str(), m_yuor);
497    kwl.add(pfx.c_str(), ZUOR_KW.c_str(), m_zuor);
498 
499    kwl.add(pfx.c_str(), XUXR_KW.c_str(), m_xuxr);
500    kwl.add(pfx.c_str(), XUYR_KW.c_str(), m_xuyr);
501    kwl.add(pfx.c_str(), XUZR_KW.c_str(), m_xuzr);
502 
503    kwl.add(pfx.c_str(), YUXR_KW.c_str(), m_yuxr);
504    kwl.add(pfx.c_str(), YUYR_KW.c_str(), m_yuyr);
505    kwl.add(pfx.c_str(), YUZR_KW.c_str(), m_yuzr);
506 
507    kwl.add(pfx.c_str(), ZUXR_KW.c_str(), m_zuxr);
508    kwl.add(pfx.c_str(), ZUYR_KW.c_str(), m_zuyr);
509    kwl.add(pfx.c_str(), ZUZR_KW.c_str(), m_zuzr);
510 
511    kwl.add(pfx.c_str(), V1X_KW.c_str(), m_v1x);
512    kwl.add(pfx.c_str(), V1Y_KW.c_str(), m_v1y);
513    kwl.add(pfx.c_str(), V1Z_KW.c_str(), m_v1z);
514 
515    kwl.add(pfx.c_str(), V2X_KW.c_str(), m_v2x);
516    kwl.add(pfx.c_str(), V2Y_KW.c_str(), m_v2y);
517    kwl.add(pfx.c_str(), V2Z_KW.c_str(), m_v2z);
518 
519    kwl.add(pfx.c_str(), V3X_KW.c_str(), m_v3x);
520    kwl.add(pfx.c_str(), V3Y_KW.c_str(), m_v3y);
521    kwl.add(pfx.c_str(), V3Z_KW.c_str(), m_v3z);
522 
523    kwl.add(pfx.c_str(), V4X_KW.c_str(), m_v4x);
524    kwl.add(pfx.c_str(), V4Y_KW.c_str(), m_v4y);
525    kwl.add(pfx.c_str(), V4Z_KW.c_str(), m_v4z);
526 
527    kwl.add(pfx.c_str(), V5X_KW.c_str(), m_v5x);
528    kwl.add(pfx.c_str(), V5Y_KW.c_str(), m_v5y);
529    kwl.add(pfx.c_str(), V5Z_KW.c_str(), m_v5z);
530 
531    kwl.add(pfx.c_str(), V6X_KW.c_str(), m_v6x);
532    kwl.add(pfx.c_str(), V6Y_KW.c_str(), m_v6y);
533    kwl.add(pfx.c_str(), V6Z_KW.c_str(), m_v6z);
534 
535    kwl.add(pfx.c_str(), V7X_KW.c_str(), m_v7x);
536    kwl.add(pfx.c_str(), V7Y_KW.c_str(), m_v7y);
537    kwl.add(pfx.c_str(), V7Z_KW.c_str(), m_v7z);
538 
539    kwl.add(pfx.c_str(), V8X_KW.c_str(), m_v8x);
540    kwl.add(pfx.c_str(), V8Y_KW.c_str(), m_v8y);
541    kwl.add(pfx.c_str(), V8Z_KW.c_str(), m_v8z);
542 
543    kwl.add(pfx.c_str(), GRPX_KW.c_str(), m_grpx);
544    kwl.add(pfx.c_str(), GRPY_KW.c_str(), m_grpy);
545    kwl.add(pfx.c_str(), GRPZ_KW.c_str(), m_grpz);
546 
547    kwl.add(pfx.c_str(), FULLR_KW.c_str(), m_fullr);
548    kwl.add(pfx.c_str(), FULLC_KW.c_str(), m_fullc);
549 
550    kwl.add(pfx.c_str(), MINR_KW.c_str(), m_minr);
551    kwl.add(pfx.c_str(), MAXR_KW.c_str(), m_maxr);
552    kwl.add(pfx.c_str(), MINC_KW.c_str(), m_minc);
553    kwl.add(pfx.c_str(), MAXC_KW.c_str(), m_maxc);
554 
555    kwl.add(pfx.c_str(), IE0_KW.c_str(), m_ie0);
556    kwl.add(pfx.c_str(), IER_KW.c_str(), m_ier);
557    kwl.add(pfx.c_str(), IEC_KW.c_str(), m_iec);
558 
559    kwl.add(pfx.c_str(), IERR_KW.c_str(), m_ierr);
560    kwl.add(pfx.c_str(), IERC_KW.c_str(), m_ierc);
561    kwl.add(pfx.c_str(), IECC_KW.c_str(), m_iecc);
562 
563    kwl.add(pfx.c_str(), IA0_KW.c_str(), m_ie0);
564    kwl.add(pfx.c_str(), IAR_KW.c_str(), m_ier);
565    kwl.add(pfx.c_str(), IAC_KW.c_str(), m_iec);
566 
567    kwl.add(pfx.c_str(), IARR_KW.c_str(), m_ie0);
568    kwl.add(pfx.c_str(), IARC_KW.c_str(), m_ier);
569    kwl.add(pfx.c_str(), IACC_KW.c_str(), m_iec);
570 
571    kwl.add(pfx.c_str(), SPX_KW.c_str(), m_spx);
572    kwl.add(pfx.c_str(), SVX_KW.c_str(), m_svx);
573    kwl.add(pfx.c_str(), SAX_KW.c_str(), m_sax);
574 
575    kwl.add(pfx.c_str(), SPY_KW.c_str(), m_spy);
576    kwl.add(pfx.c_str(), SVY_KW.c_str(), m_svy);
577    kwl.add(pfx.c_str(), SAY_KW.c_str(), m_say);
578 
579    kwl.add(pfx.c_str(), SPZ_KW.c_str(), m_spz);
580    kwl.add(pfx.c_str(), SVZ_KW.c_str(), m_svz);
581    kwl.add(pfx.c_str(), SAZ_KW.c_str(), m_saz);
582 
583 } // End: ossimRsmida::saveState( ... )
584 
585 bool ossimRsmida::loadState( const ossimKeywordlist& kwl,
586                              const std::string& prefix )
587 {
588    static const char MODULE[] = "ossimRsmida::loadState";
589    std::string pfx = prefix + std::string("rsmida.");
590    std::string key;
591    std::string value;
592 
593    bool result = false; // Set to true on last key.
594 
595    while( 1 ) // Break out on error.
596    {
597       key = IID_KW;
598       value = kwl.findKey( pfx, key );
599       if ( value.size() )
600       {
601          m_iid = value;
602       }
603       else
604       {
605          break;
606       }
607 
608       key = EDITION_KW;
609       value = kwl.findKey( pfx, key );
610       if ( value.size() )
611       {
612          m_edition = value;
613       }
614       else
615       {
616          break;
617       }
618 
619       key = ISID_KW;
620       value = kwl.findKey( pfx, key );
621       if ( value.size() )
622       {
623          m_isid = value;
624       }
625       else // Not required at this time.  Blank in nitf test data.
626       {
627          m_isid.clear();
628          if (traceDebug())
629          {
630             ossimNotify(ossimNotifyLevel_NOTICE)
631                << MODULE << " NOTICE: " << ISID_KW << "was not found or is blank.\n";
632          }
633       }
634 
635       key = SID_KW;
636       value = kwl.findKey( pfx, key );
637       if ( value.size() )
638       {
639          m_sid = value;
640       }
641       else // Not required at this time.  Blank in nitf test data.
642       {
643          m_sid.clear();
644          if (traceDebug())
645          {
646             ossimNotify(ossimNotifyLevel_NOTICE)
647                << MODULE << " NOTICE: " << ISID_KW << "was not found or is blank.\n";
648          }
649       }
650 
651       key = STID_KW;
652       value = kwl.findKey( pfx, key );
653       if ( value.size() )
654       {
655          m_stid = value;
656       }
657       else
658       {
659          break;
660       }
661 
662       key = YEAR_KW;
663       value = kwl.findKey( pfx, key );
664       if ( value.size() )
665       {
666          m_year = ossimString(value).toUInt32();
667       }
668       else
669       {
670          break;
671       }
672 
673       key = MONTH_KW;
674       value = kwl.findKey( pfx, key );
675       if ( value.size() )
676       {
677          m_month = ossimString(value).toUInt32();
678       }
679       else
680       {
681          break;
682       }
683 
684       key = DAY_KW;
685       value = kwl.findKey( pfx, key );
686       if ( value.size() )
687       {
688          m_day = ossimString(value).toUInt32();
689       }
690       else
691       {
692          break;
693       }
694 
695       key = HOUR_KW;
696       value = kwl.findKey( pfx, key );
697       if ( value.size() )
698       {
699          m_hour = ossimString(value).toUInt32();
700       }
701       else
702       {
703          break;
704       }
705 
706       key = MINUTE_KW;
707       value = kwl.findKey( pfx, key );
708       if ( value.size() )
709       {
710          m_minute = ossimString(value).toUInt32();
711       }
712       else
713       {
714          break;
715       }
716 
717       key = SECOND_KW;
718       value = kwl.findKey( pfx, key );
719       if ( value.size() )
720       {
721          m_second = ossimString(value).toFloat64();
722       }
723       else
724       {
725          break;
726       }
727 
728       key = NRG_KW;
729       value = kwl.findKey( pfx, key );
730       if ( value.size() )
731       {
732          m_nrg = ossimString(value).toInt32();
733       }
734       else
735       {
736          break;
737       }
738 
739       key = NCG_KW;
740       value = kwl.findKey( pfx, key );
741       if ( value.size() )
742       {
743          m_ncg = ossimString(value).toInt32();
744       }
745       else
746       {
747          break;
748       }
749 
750       key = TRG_KW;
751       value = kwl.findKey( pfx, key );
752       if ( value.size() )
753       {
754          m_trg = ossimString(value).toFloat64();
755       }
756       else
757       {
758          break;
759       }
760 
761       key = TCG_KW;
762       value = kwl.findKey( pfx, key );
763       if ( value.size() )
764       {
765          m_tcg = ossimString(value).toFloat64();
766       }
767       else
768       {
769          break;
770       }
771 
772       key = GRNDD_KW;
773       value = kwl.findKey( pfx, key );
774       if ( value.size() )
775       {
776          m_grndd = value[0];
777       }
778       else
779       {
780          break;
781       }
782 
783       key = XUOR_KW;
784       value = kwl.findKey( pfx, key );
785       if ( value.size() )
786       {
787          m_xuor = ossimString(value).toFloat64();
788       }
789       else
790       {
791          break;
792       }
793 
794       key = YUOR_KW;
795       value = kwl.findKey( pfx, key );
796       if ( value.size() )
797       {
798          m_yuor = ossimString(value).toFloat64();
799       }
800       else
801       {
802          break;
803       }
804 
805       key = ZUOR_KW;
806       value = kwl.findKey( pfx, key );
807       if ( value.size() )
808       {
809          m_zuor = ossimString(value).toFloat64();
810       }
811       else
812       {
813          break;
814       }
815 
816       key = XUXR_KW;
817       value = kwl.findKey( pfx, key );
818       if ( value.size() )
819       {
820          m_xuxr = ossimString(value).toFloat64();
821       }
822       else
823       {
824          break;
825       }
826 
827       key = XUYR_KW;
828       value = kwl.findKey( pfx, key );
829       if ( value.size() )
830       {
831          m_xuyr = ossimString(value).toFloat64();
832       }
833       else
834       {
835          break;
836       }
837 
838       key = XUZR_KW;
839       value = kwl.findKey( pfx, key );
840       if ( value.size() )
841       {
842          m_xuzr = ossimString(value).toFloat64();
843       }
844       else
845       {
846          break;
847       }
848 
849       key = YUXR_KW;
850       value = kwl.findKey( pfx, key );
851       if ( value.size() )
852       {
853          m_yuxr = ossimString(value).toFloat64();
854       }
855       else
856       {
857          break;
858       }
859 
860       key = YUYR_KW;
861       value = kwl.findKey( pfx, key );
862       if ( value.size() )
863       {
864          m_yuyr = ossimString(value).toFloat64();
865       }
866       else
867       {
868          break;
869       }
870 
871       key = YUZR_KW;
872       value = kwl.findKey( pfx, key );
873       if ( value.size() )
874       {
875          m_yuzr = ossimString(value).toFloat64();
876       }
877       else
878       {
879          break;
880       }
881 
882       key = ZUXR_KW;
883       value = kwl.findKey( pfx, key );
884       if ( value.size() )
885       {
886          m_zuxr = ossimString(value).toFloat64();
887       }
888       else
889       {
890          break;
891       }
892 
893       key = ZUYR_KW;
894       value = kwl.findKey( pfx, key );
895       if ( value.size() )
896       {
897          m_zuyr = ossimString(value).toFloat64();
898       }
899       else
900       {
901          break;
902       }
903 
904       key = ZUZR_KW;
905       value = kwl.findKey( pfx, key );
906       if ( value.size() )
907       {
908          m_zuzr = ossimString(value).toFloat64();
909       }
910       else
911       {
912          break;
913       }
914 
915       key = V1X_KW;
916       value = kwl.findKey( pfx, key );
917       if ( value.size() )
918       {
919          m_v1x = ossimString(value).toFloat64();
920       }
921       else
922       {
923          break;
924       }
925 
926       key = V1Y_KW;
927       value = kwl.findKey( pfx, key );
928       if ( value.size() )
929       {
930          m_v1y = ossimString(value).toFloat64();
931       }
932       else
933       {
934          break;
935       }
936 
937       key = V1Z_KW;
938       value = kwl.findKey( pfx, key );
939       if ( value.size() )
940       {
941          m_v1z = ossimString(value).toFloat64();
942       }
943       else
944       {
945          break;
946       }
947 
948       key = V2X_KW;
949       value = kwl.findKey( pfx, key );
950       if ( value.size() )
951       {
952          m_v2x = ossimString(value).toFloat64();
953       }
954       else
955       {
956          break;
957       }
958 
959       key = V2Y_KW;
960       value = kwl.findKey( pfx, key );
961       if ( value.size() )
962       {
963          m_v2y = ossimString(value).toFloat64();
964       }
965       else
966       {
967          break;
968       }
969 
970       key = V2Z_KW;
971       value = kwl.findKey( pfx, key );
972       if ( value.size() )
973       {
974          m_v2z = ossimString(value).toFloat64();
975       }
976       else
977       {
978          break;
979       }
980 
981       key = V3X_KW;
982       value = kwl.findKey( pfx, key );
983       if ( value.size() )
984       {
985          m_v3x = ossimString(value).toFloat64();
986       }
987       else
988       {
989          break;
990       }
991 
992       key = V3Y_KW;
993       value = kwl.findKey( pfx, key );
994       if ( value.size() )
995       {
996          m_v3y = ossimString(value).toFloat64();
997       }
998       else
999       {
1000          break;
1001       }
1002 
1003       key = V3Z_KW;
1004       value = kwl.findKey( pfx, key );
1005       if ( value.size() )
1006       {
1007          m_v3z = ossimString(value).toFloat64();
1008       }
1009       else
1010       {
1011          break;
1012       }
1013 
1014       key = V4X_KW;
1015       value = kwl.findKey( pfx, key );
1016       if ( value.size() )
1017       {
1018          m_v4x = ossimString(value).toFloat64();
1019       }
1020       else
1021       {
1022          break;
1023       }
1024 
1025       key = V4Y_KW;
1026       value = kwl.findKey( pfx, key );
1027       if ( value.size() )
1028       {
1029          m_v4y = ossimString(value).toFloat64();
1030       }
1031       else
1032       {
1033          break;
1034       }
1035 
1036       key = V4Z_KW;
1037       value = kwl.findKey( pfx, key );
1038       if ( value.size() )
1039       {
1040          m_v4z = ossimString(value).toFloat64();
1041       }
1042       else
1043       {
1044          break;
1045       }
1046 
1047       key = V5X_KW;
1048       value = kwl.findKey( pfx, key );
1049       if ( value.size() )
1050       {
1051          m_v5x = ossimString(value).toFloat64();
1052       }
1053       else
1054       {
1055          break;
1056       }
1057 
1058       key = V5Y_KW;
1059       value = kwl.findKey( pfx, key );
1060       if ( value.size() )
1061       {
1062          m_v5y = ossimString(value).toFloat64();
1063       }
1064       else
1065       {
1066          break;
1067       }
1068 
1069       key = V5Z_KW;
1070       value = kwl.findKey( pfx, key );
1071       if ( value.size() )
1072       {
1073          m_v5z = ossimString(value).toFloat64();
1074       }
1075       else
1076       {
1077          break;
1078       }
1079 
1080       key = V6X_KW;
1081       value = kwl.findKey( pfx, key );
1082       if ( value.size() )
1083       {
1084          m_v6x = ossimString(value).toFloat64();
1085       }
1086       else
1087       {
1088          break;
1089       }
1090 
1091       key = V6Y_KW;
1092       value = kwl.findKey( pfx, key );
1093       if ( value.size() )
1094       {
1095          m_v6y = ossimString(value).toFloat64();
1096       }
1097       else
1098       {
1099          break;
1100       }
1101 
1102       key = V6Z_KW;
1103       value = kwl.findKey( pfx, key );
1104       if ( value.size() )
1105       {
1106          m_v6z = ossimString(value).toFloat64();
1107       }
1108       else
1109       {
1110          break;
1111       }
1112 
1113       key = V7X_KW;
1114       value = kwl.findKey( pfx, key );
1115       if ( value.size() )
1116       {
1117          m_v7x = ossimString(value).toFloat64();
1118       }
1119       else
1120       {
1121          break;
1122       }
1123 
1124       key = V7Y_KW;
1125       value = kwl.findKey( pfx, key );
1126       if ( value.size() )
1127       {
1128          m_v7y = ossimString(value).toFloat64();
1129       }
1130       else
1131       {
1132          break;
1133       }
1134 
1135       key = V7Z_KW;
1136       value = kwl.findKey( pfx, key );
1137       if ( value.size() )
1138       {
1139          m_v7z = ossimString(value).toFloat64();
1140       }
1141       else
1142       {
1143          break;
1144       }
1145 
1146       key = V8X_KW;
1147       value = kwl.findKey( pfx, key );
1148       if ( value.size() )
1149       {
1150          m_v8x = ossimString(value).toFloat64();
1151       }
1152       else
1153       {
1154          break;
1155       }
1156 
1157       key = V8Y_KW;
1158       value = kwl.findKey( pfx, key );
1159       if ( value.size() )
1160       {
1161          m_v8y = ossimString(value).toFloat64();
1162       }
1163       else
1164       {
1165          break;
1166       }
1167 
1168       key = V8Z_KW;
1169       value = kwl.findKey( pfx, key );
1170       if ( value.size() )
1171       {
1172          m_v8z = ossimString(value).toFloat64();
1173       }
1174       else
1175       {
1176          break;
1177       }
1178 
1179       key = GRPX_KW;
1180       value = kwl.findKey( pfx, key );
1181       if ( value.size() )
1182       {
1183          m_grpx = ossimString(value).toFloat64();
1184       }
1185       else
1186       {
1187          break;
1188       }
1189 
1190       key = GRPY_KW;
1191       value = kwl.findKey( pfx, key );
1192       if ( value.size() )
1193       {
1194          m_grpy = ossimString(value).toFloat64();
1195       }
1196       else
1197       {
1198          break;
1199       }
1200 
1201       key = GRPZ_KW;
1202       value = kwl.findKey( pfx, key );
1203       if ( value.size() )
1204       {
1205          m_grpz = ossimString(value).toFloat64();
1206       }
1207       else
1208       {
1209          break;
1210       }
1211 
1212       key = FULLR_KW;
1213       value = kwl.findKey( pfx, key );
1214       if ( value.size() )
1215       {
1216          m_fullr = ossimString(value).toFloat64();
1217       }
1218       else
1219       {
1220          break;
1221       }
1222 
1223       key = FULLC_KW;
1224       value = kwl.findKey( pfx, key );
1225       if ( value.size() )
1226       {
1227          m_fullc = ossimString(value).toFloat64();
1228       }
1229       else
1230       {
1231          break;
1232       }
1233 
1234       key = MINR_KW;
1235       value = kwl.findKey( pfx, key );
1236       if ( value.size() )
1237       {
1238          m_minr = ossimString(value).toFloat64();
1239       }
1240       else
1241       {
1242          break;
1243       }
1244 
1245       key = MAXR_KW;
1246       value = kwl.findKey( pfx, key );
1247       if ( value.size() )
1248       {
1249          m_maxr = ossimString(value).toFloat64();
1250       }
1251       else
1252       {
1253          break;
1254       }
1255 
1256       key = MINC_KW;
1257       value = kwl.findKey( pfx, key );
1258       if ( value.size() )
1259       {
1260          m_minc = ossimString(value).toFloat64();
1261       }
1262       else
1263       {
1264          break;
1265       }
1266 
1267       key = MAXC_KW;
1268       value = kwl.findKey( pfx, key );
1269       if ( value.size() )
1270       {
1271          m_maxc = ossimString(value).toFloat64();
1272       }
1273       else
1274       {
1275          break;
1276       }
1277 
1278       key = IE0_KW;
1279       value = kwl.findKey( pfx, key );
1280       if ( value.size() )
1281       {
1282          m_ie0 = ossimString(value).toFloat64();
1283       }
1284       else
1285       {
1286          break;
1287       }
1288 
1289       key = IER_KW;
1290       value = kwl.findKey( pfx, key );
1291       if ( value.size() )
1292       {
1293          m_ier = ossimString(value).toFloat64();
1294       }
1295       else
1296       {
1297          break;
1298       }
1299 
1300       key = IEC_KW;
1301       value = kwl.findKey( pfx, key );
1302       if ( value.size() )
1303       {
1304          m_iec = ossimString(value).toFloat64();
1305       }
1306       else
1307       {
1308          break;
1309       }
1310 
1311       key = IERR_KW;
1312       value = kwl.findKey( pfx, key );
1313       if ( value.size() )
1314       {
1315          m_ierr = ossimString(value).toFloat64();
1316       }
1317       else
1318       {
1319          break;
1320       }
1321 
1322       key = IERC_KW;
1323       value = kwl.findKey( pfx, key );
1324       if ( value.size() )
1325       {
1326          m_ierc = ossimString(value).toFloat64();
1327       }
1328       else
1329       {
1330          break;
1331       }
1332 
1333       key = IECC_KW;
1334       value = kwl.findKey( pfx, key );
1335       if ( value.size() )
1336       {
1337          m_iecc = ossimString(value).toFloat64();
1338       }
1339       else
1340       {
1341          break;
1342       }
1343 
1344       key = IA0_KW;
1345       value = kwl.findKey( pfx, key );
1346       if ( value.size() )
1347       {
1348          m_ia0 = ossimString(value).toFloat64();
1349       }
1350       else
1351       {
1352          break;
1353       }
1354 
1355       key = IAR_KW;
1356       value = kwl.findKey( pfx, key );
1357       if ( value.size() )
1358       {
1359          m_iar = ossimString(value).toFloat64();
1360       }
1361       else
1362       {
1363          break;
1364       }
1365 
1366       key = IAC_KW;
1367       value = kwl.findKey( pfx, key );
1368       if ( value.size() )
1369       {
1370          m_iac = ossimString(value).toFloat64();
1371       }
1372       else
1373       {
1374          break;
1375       }
1376 
1377       key = IARR_KW;
1378       value = kwl.findKey( pfx, key );
1379       if ( value.size() )
1380       {
1381          m_iarr = ossimString(value).toFloat64();
1382       }
1383       else
1384       {
1385          break;
1386       }
1387 
1388       key = IARC_KW;
1389       value = kwl.findKey( pfx, key );
1390       if ( value.size() )
1391       {
1392          m_iarc = ossimString(value).toFloat64();
1393       }
1394       else
1395       {
1396          break;
1397       }
1398 
1399       key = IACC_KW;
1400       value = kwl.findKey( pfx, key );
1401       if ( value.size() )
1402       {
1403          m_iacc = ossimString(value).toFloat64();
1404       }
1405       else
1406       {
1407          break;
1408       }
1409 
1410       key = SPX_KW;
1411       value = kwl.findKey( pfx, key );
1412       if ( value.size() )
1413       {
1414          m_spx = ossimString(value).toFloat64();
1415       }
1416       else
1417       {
1418          break;
1419       }
1420 
1421       key = SVX_KW;
1422       value = kwl.findKey( pfx, key );
1423       if ( value.size() )
1424       {
1425          m_svx = ossimString(value).toFloat64();
1426       }
1427       else
1428       {
1429          break;
1430       }
1431 
1432       key = SAX_KW;
1433       value = kwl.findKey( pfx, key );
1434       if ( value.size() )
1435       {
1436          m_sax = ossimString(value).toFloat64();
1437       }
1438       else
1439       {
1440          break;
1441       }
1442 
1443       key = SPY_KW;
1444       value = kwl.findKey( pfx, key );
1445       if ( value.size() )
1446       {
1447          m_spy = ossimString(value).toFloat64();
1448       }
1449       else
1450       {
1451          break;
1452       }
1453 
1454       key = SVY_KW;
1455       value = kwl.findKey( pfx, key );
1456       if ( value.size() )
1457       {
1458          m_svy = ossimString(value).toFloat64();
1459       }
1460       else
1461       {
1462          break;
1463       }
1464 
1465       key = SAY_KW;
1466       value = kwl.findKey( pfx, key );
1467       if ( value.size() )
1468       {
1469          m_say = ossimString(value).toFloat64();
1470       }
1471       else
1472       {
1473          break;
1474       }
1475 
1476       key = SPZ_KW;
1477       value = kwl.findKey( pfx, key );
1478       if ( value.size() )
1479       {
1480          m_spz = ossimString(value).toFloat64();
1481       }
1482       else
1483       {
1484          break;
1485       }
1486 
1487       key = SVZ_KW;
1488       value = kwl.findKey( pfx, key );
1489       if ( value.size() )
1490       {
1491          m_svz = ossimString(value).toFloat64();
1492       }
1493       else
1494       {
1495          break;
1496       }
1497 
1498       key = SAZ_KW;
1499       value = kwl.findKey( pfx, key );
1500       if ( value.size() )
1501       {
1502          m_saz = ossimString(value).toFloat64();
1503       }
1504       else
1505       {
1506          break;
1507       }
1508 
1509       // If we get here we're good, so set the status for downstream code.
1510       result = true;
1511 
1512       // Final break from while forever loop.
1513       break;
1514 
1515    } // Matches: while( FOREVER )
1516 
1517    if ( result == false )
1518    {
1519       // Find on key failed...
1520       ossimNotify(ossimNotifyLevel_WARN)
1521          << MODULE << " WARNING:\n"
1522          << "Error encountered parsing the following required keyword: "
1523          << key
1524          << "\nCheck the keywordlist for required key:value pairs."
1525          << std::endl;
1526    }
1527 
1528    return result;
1529 
1530 } // End: ossimRsmida::loadState( ... )
1531 
1532 bool ossimRsmida::initialize( const ossimNitfRsmidaTag* rsmidaTag )
1533 {
1534    bool status = false;
1535 
1536    if ( rsmidaTag )
1537    {
1538       m_iid = rsmidaTag->getIid().trim().string();
1539       m_edition = rsmidaTag->getEdition().trim().string();
1540 
1541       m_isid = rsmidaTag->getIsid().trim().string();
1542       m_sid  = rsmidaTag->getSid().trim().string();
1543       m_stid = rsmidaTag->getStid().trim().string();
1544 
1545       m_year   = rsmidaTag->getYear().toUInt32();
1546       m_month  = rsmidaTag->getMonth().toUInt32();
1547       m_day    = rsmidaTag->getDay().toUInt32();
1548       m_hour   = rsmidaTag->getHour().toUInt32();
1549       m_minute = rsmidaTag->getMinute().toUInt32();
1550       m_second = rsmidaTag->getSecond().toFloat64();
1551 
1552       m_nrg = rsmidaTag->getNrg().toUInt32();
1553       m_ncg = rsmidaTag->getNcg().toUInt32();
1554 
1555       m_trg = rsmidaTag->getTrg().toFloat64();
1556       m_tcg = rsmidaTag->getTcg().toFloat64();
1557 
1558       std::string s = rsmidaTag->getGrndd().string();
1559       if ( s.size() )
1560       {
1561          m_grndd = s[0];
1562       }
1563       else
1564       {
1565          m_grndd = '\0'; // This should not happen. return false??? (drb)
1566       }
1567 
1568       m_xuor = rsmidaTag->getXuor().toFloat64();
1569       m_yuor = rsmidaTag->getYuor().toFloat64();
1570       m_zuor = rsmidaTag->getZuor().toFloat64();
1571 
1572       m_xuxr = rsmidaTag->getXuxr().toFloat64();
1573       m_xuyr = rsmidaTag->getXuyr().toFloat64();
1574       m_xuzr = rsmidaTag->getXuzr().toFloat64();
1575 
1576       m_yuxr = rsmidaTag->getYuxr().toFloat64();
1577       m_yuyr = rsmidaTag->getYuyr().toFloat64();
1578       m_yuzr = rsmidaTag->getYuzr().toFloat64();
1579 
1580       m_zuxr = rsmidaTag->getZuxr().toFloat64();
1581       m_zuyr = rsmidaTag->getZuyr().toFloat64();
1582       m_zuzr = rsmidaTag->getZuzr().toFloat64();
1583 
1584       m_v1x = rsmidaTag->getV1x().toFloat64();
1585       m_v1y = rsmidaTag->getV1y().toFloat64();
1586       m_v1z = rsmidaTag->getV1z().toFloat64();
1587 
1588       m_v2x = rsmidaTag->getV2x().toFloat64();
1589       m_v2y = rsmidaTag->getV2y().toFloat64();
1590       m_v2z = rsmidaTag->getV2z().toFloat64();
1591 
1592       m_v3x = rsmidaTag->getV3x().toFloat64();
1593       m_v3y = rsmidaTag->getV3y().toFloat64();
1594       m_v3z = rsmidaTag->getV3z().toFloat64();
1595 
1596       m_v4x = rsmidaTag->getV4x().toFloat64();
1597       m_v4y = rsmidaTag->getV4y().toFloat64();
1598       m_v4z = rsmidaTag->getV4z().toFloat64();
1599 
1600       m_v5x = rsmidaTag->getV5x().toFloat64();
1601       m_v5y = rsmidaTag->getV5y().toFloat64();
1602       m_v5z = rsmidaTag->getV5z().toFloat64();
1603 
1604       m_v6x = rsmidaTag->getV6x().toFloat64();
1605       m_v6y = rsmidaTag->getV6y().toFloat64();
1606       m_v6z = rsmidaTag->getV6z().toFloat64();
1607 
1608       m_v7x = rsmidaTag->getV7x().toFloat64();
1609       m_v7y = rsmidaTag->getV7y().toFloat64();
1610       m_v7z = rsmidaTag->getV7z().toFloat64();
1611 
1612       m_v8x = rsmidaTag->getV8x().toFloat64();
1613       m_v8y = rsmidaTag->getV8y().toFloat64();
1614       m_v8z = rsmidaTag->getV8z().toFloat64();
1615 
1616       m_grpx = rsmidaTag->getGrpx().toFloat64();
1617       m_grpy = rsmidaTag->getGrpy().toFloat64();
1618       m_grpz = rsmidaTag->getGrpz().toFloat64();
1619 
1620       m_fullr = rsmidaTag->getFullr().toUInt32();
1621       m_fullc = rsmidaTag->getFullc().toUInt32();
1622 
1623       m_minr = rsmidaTag->getMinr().toUInt32();
1624       m_maxr = rsmidaTag->getMaxr().toUInt32();
1625       m_minc = rsmidaTag->getMinc().toUInt32();
1626       m_maxc = rsmidaTag->getMaxc().toUInt32();
1627 
1628       m_ie0 = rsmidaTag->getIe0().toFloat64();
1629       m_ier = rsmidaTag->getIer().toFloat64();
1630       m_iec = rsmidaTag->getIec().toFloat64();
1631 
1632       m_ierr = rsmidaTag->getIerr().toFloat64();
1633       m_ierc = rsmidaTag->getIerc().toFloat64();
1634       m_iecc = rsmidaTag->getIecc().toFloat64();
1635 
1636       m_ia0 = rsmidaTag->getIa0().toFloat64();
1637       m_iar = rsmidaTag->getIar().toFloat64();
1638       m_iac = rsmidaTag->getIac().toFloat64();
1639 
1640       m_iarr = rsmidaTag->getIarr().toFloat64();
1641       m_iarc = rsmidaTag->getIarc().toFloat64();
1642       m_iacc = rsmidaTag->getIacc().toFloat64();
1643 
1644       m_spx = rsmidaTag->getSpx().toFloat64();
1645       m_svx = rsmidaTag->getSvx().toFloat64();
1646       m_sax = rsmidaTag->getSax().toFloat64();
1647 
1648       m_spy = rsmidaTag->getSpy().toFloat64();
1649       m_svy = rsmidaTag->getSvy().toFloat64();
1650       m_say = rsmidaTag->getSay().toFloat64();
1651 
1652       m_spz = rsmidaTag->getSpz().toFloat64();
1653       m_svz = rsmidaTag->getSvz().toFloat64();
1654       m_saz = rsmidaTag->getSaz().toFloat64();
1655 
1656       status = true;
1657 
1658    } // Matches: if ( rsmidaTag )
1659 
1660    return status;
1661 
1662 } // End: ossimRsmida::initializeModel( rsmidaTag )
1663