OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimNitfImageHeaderV2_X.cpp
Go to the documentation of this file.
2 
3 #include <cmath> /* for fmod */
4 #include <iomanip>
5 #include <sstream>
6 
8 #include <ossim/base/ossimDms.h>
9 #include <ossim/base/ossimIpt.h>
10 #include <ossim/base/ossimIrect.h>
12 #include <ossim/base/ossimNotify.h>
13 #include <ossim/base/ossimTrace.h>
16 
17 static const ossimTrace traceDebug(
18  ossimString("ossimNitfImageHeaderV2_X:debug"));
19 
60 
61 
62 
64  "ossimNitfImageHeaderV2_X",
66 
68 :theImageComments()
69 {
70 }
71 
73 {
74  ossimIpt ul(0, 0);
76  return ossimIrect(ul, lr);
77 
78 #if 0
79  //---
80  // Changed to not include offset 20100619 (drb).
81  // Use void getImageLocation(ossimIpt& loc)const to get offset.
82  //---
83  ossimDpt ul(ossimString((char*)(&theImageLocation[5])).toDouble(),
85  (char*)(&theImageLocation[5])).toDouble());
86 
87  double rows = ossimString(theSignificantRows).toDouble();
88  double cols = ossimString(theSignificantCols).toDouble();
89 
90  ossimDpt lr(ul.x + cols-1,
91  ul.y + rows-1);
92  return ossimDrect(ul, lr);
93 #endif
94 }
95 
97 {
98  ossimIpt ul(0, 0);
101 
102  return ossimIrect(ul, lr);
103 
104 #if 0
105  //---
106  // Changed to not include offset 20100619 (drb).
107  // Use void getImageLocation(ossimIpt& loc)const to get offset.
108  //---
109  ossimDpt ul(ossimString((char*)(&theImageLocation[5])).toDouble(),
111  (char*)(&theImageLocation[5])).toDouble());
112 
115 
116  ossimDpt lr(ul.x + cols-1,
117  ul.y + rows-1);
118  return ossimDrect(ul, lr);
119 #endif
120 }
121 
123 {
125 }
126 
128 {
130 }
131 
133 {
135 }
136 
138 {
140 }
141 
143 {
145 }
146 
148 {
150 }
151 
153 {
155 }
156 
158 {
160 }
161 
163 {
165 }
166 
168 {
170 }
171 
173 {
175 }
176 
178 {
180 }
181 
183 {
185 }
186 
188 {
189  ossimNitfCommon::setField(theDisplayLevel, value, 3, std::ios::right, '0');
190 }
191 
193 {
195 }
196 
198 {
200 }
201 
203 {
204  std::stringstream strm;
205  strm << bitsPerPixel;
207  strm.str(),
208  2,
209  std::ios::right,
210  '0');
211 }
212 
214 {
215  std::stringstream strm;
216  strm << bitsPerPixel;
218  strm.str(),
219  2,
220  std::ios::right,
221  '0');
222 }
223 
225 {
226  theImageMode[0] = mode;
227 }
228 
230 {
232 }
233 
235 {
237 }
238 
240 {
241  std::stringstream strm;
242  strm << blocks;
244  strm.str(),
245  4,
246  std::ios::right,
247  '0');
248 }
249 
251 {
252  std::stringstream strm;
253  strm << blocks;
255  strm.str(),
256  4,
257  std::ios::right,
258  '0');
259 }
260 
262 {
263  std::stringstream strm;
264  strm << pixels;
266  strm.str(),
267  4,
268  std::ios::right,
269  '0');
270 }
271 
273 {
274  std::stringstream strm;
275  strm << pixels;
277  strm.str(),
278  4,
279  std::ios::right,
280  '0');
281 }
282 
284 {
285  return theDataLocation;
286 }
287 
289 {
290  return theImageId;
291 }
292 
294 {
295  return theDateTime;
296 }
297 
299 {
300  return ossimString(theTargetId).trim();
301 }
302 
304 {
305  return ossimString(theTitle).trim();
306 }
307 
309 {
311 }
312 
314 {
315  return ossimString(theEncryption).trim();
316 }
317 
319 {
320  return ossimString(theImageSource).trim();
321 }
322 
324 {
326 }
327 
329 {
331 }
332 
334 {
336 }
337 
339 {
341 }
342 
344 {
345  return ossimString(theCompression).trim();
346 }
347 
349 {
350  return theCompressionRateCode;
351 }
352 
354 {
356 }
357 
359 {
361 }
362 
364 {
365  return thePixelValueType;
366 }
367 
369 {
371 }
372 
374 {
376 }
377 
379 {
380  return theImageMode[0];
381 }
382 
384 {
385  return theCategory;
386 }
387 
389 {
390  return theRepresentation;
391 }
392 
394 {
396 }
397 
399 {
401 }
402 
404 {
406 }
407 
409 {
411 }
412 
414 {
415  if((theType[0] != 'I') || theType[1] != 'M')
416  {
417  return false;
418  }
419  ossim_uint32 actualBitsPerPixel = getActualBitsPerPixel();
420  ossim_uint32 bitsPerPixel = getBitsPerPixel();
421 
422  if(actualBitsPerPixel>bitsPerPixel)
423  {
424  return false;
425  }
426 
427  return true;
428 }
429 
430 bool ossimNitfImageHeaderV2_X::loadState(const ossimKeywordlist& kwl, const char* prefix)
431 {
432  // Note: Currently not looking up all fieds only ones that make sense.
433 
434  const char* lookup;
435 
436  lookup = kwl.find( prefix, IID1_KW);
437  if ( lookup )
438  {
439  setImageId( ossimString(lookup) );
440  }
441  lookup = kwl.find( prefix, IDATIM_KW);
442  if ( lookup )
443  {
445  }
446  lookup = kwl.find( prefix, TGTID_KW);
447  if ( lookup )
448  {
449  setTargetId( ossimString(lookup) );
450  }
451  lookup = kwl.find( prefix, IID2_KW);
452  if ( lookup )
453  {
454  setTitle( ossimString(lookup) );
455  }
456  lookup = kwl.find( prefix, ITITLE_KW); // duplicate of above
457  if ( lookup )
458  {
459  setTitle( ossimString(lookup) );
460  }
461  lookup = kwl.find( prefix, ISCLAS_KW);
462  if ( lookup )
463  {
465  }
466  lookup = kwl.find( prefix, ENCRYP_KW);
467  if ( lookup )
468  {
469  setEncryption( ossimString(lookup) );
470  }
471  lookup = kwl.find( prefix, ISORCE_KW);
472  if ( lookup )
473  {
474  setImageSource( ossimString(lookup) );
475  }
476  lookup = kwl.find( prefix, NROWS_KW);
477  if ( lookup )
478  {
480  }
481 
482  lookup = kwl.find( prefix, NCOLS_KW);
483  if ( lookup )
484  {
486  }
487 
488  lookup = kwl.find( prefix, PVTYPE_KW);
489  if ( lookup )
490  {
492  }
493 
494  lookup = kwl.find( prefix, IREP_KW);
495  if ( lookup )
496  {
498  }
499  lookup = kwl.find( prefix, ICAT_KW);
500  if ( lookup )
501  {
502  setCategory( ossimString(lookup) );
503  }
504  lookup = kwl.find( prefix, ABPP_KW);
505  if ( lookup )
506  {
508  }
509  lookup = kwl.find( prefix, NBPP_KW);
510  if ( lookup )
511  {
512  setBitsPerPixel(ossimString(lookup).toUInt32());
513  }
514  lookup = kwl.find( prefix, PJUST_KW);
515  if ( lookup )
516  {
517  setJustification(ossimString(lookup));
518  }
519  lookup = kwl.find( prefix, ICORDS_KW);
520  if ( lookup )
521  {
523  }
524  lookup = kwl.find( prefix, IGEOLO_KW);
525  if ( lookup )
526  {
528  }
529  lookup = kwl.find( prefix, NICOM_KW);
530  if ( lookup )
531  {
533  }
535  if (numberOfComments > 0)
536  {
537  theImageComments.resize(numberOfComments);
538  for(ossim_uint32 i=0; i < numberOfComments; ++i)
539  {
541  lookup = kwl.find( prefix, icpre );
542  theImageComments[i] = ossimString(lookup);
543  }
544  }
545  lookup = kwl.find( prefix, IC_KW);
546  if ( lookup )
547  {
548  setCompression(ossimString(lookup));
549  }
550  lookup = kwl.find( prefix, COMRAT_KW);
551  if ( lookup )
552  {
554  }
555  lookup = kwl.find( prefix, IMODE_KW);
556  if ( lookup )
557  {
558  setImageMode(lookup[0]);
559  }
560  lookup = kwl.find( prefix, ISYNC_KW);
561  if ( lookup )
562  {
564  }
565  lookup = kwl.find( prefix, IALVL_KW);
566  if ( lookup )
567  {
569  }
570  lookup = kwl.find( prefix, IDLVL_KW);
571  if ( lookup )
572  {
573  setDisplayLevel(ossimString(lookup));
574  }
575 
576  return true;
577 }
578 
580 {
581  ossimString name = property->getName();
582 
583  // Make case insensitive:
584  name.upcase();
585 
586  std::ostringstream out;
587 
588  if(!property) return;
589 
590  if(name.contains(IID1_KW))
591  {
592  setImageId(property->valueToString());
593  }
594  else if(name.contains(IDATIM_KW))
595  {
597  }
598  else if(name.contains(TGTID_KW))
599  {
600  setTargetId(property->valueToString());
601  }
602  else if(name.contains(IID2_KW)||
603  name.contains(ITITLE_KW))
604  {
605  setTitle(property->valueToString());
606  }
607  else if(name.contains(ISCLAS_KW))
608  {
610  }
611  else if(name.contains(ENCRYP_KW))
612  {
613  setEncryption(property->valueToString());
614  }
615  else if(name.contains(ISORCE_KW))
616  {
617  setImageSource(property->valueToString());
618  }
619  else if(name.contains(PVTYPE_KW))
620  {
621  setPixelType(property->valueToString());
622  }
623  else if(name.contains(IREP_KW))
624  {
625  setRepresentation(property->valueToString());
626  }
627  else if(name.contains(ICAT_KW))
628  {
629  setCategory(property->valueToString());
630  }
631  else if(name.contains(ABPP_KW))
632  {
633  setActualBitsPerPixel(property->valueToString().toUInt32());
634  }
635  else if(name.contains(PJUST_KW))
636  {
637  setJustification(property->valueToString());
638  }
639  else if(name.contains(ICORDS_KW))
640  {
641  setCoordinateSystem(property->valueToString());
642  }
643  else if(name.contains(IGEOLO_KW))
644  {
646  }
647  else if(name.contains(NICOM_KW))
648  {
649  setNumberOfComments(property->valueToString());
650  }
651  else if(name.contains(IC_KW))
652  {
653  setCompression(property->valueToString());
654  }
655  else if(name.contains(COMRAT_KW))
656  {
658  }
659  else if(name.contains(ISYNC_KW))
660  {
661  }
662  else if(name.contains(IMODE_KW))
663  {
664  setImageMode(*(property->valueToString().trim().begin()));
665  }
666  else if(name.contains(NBPR_KW))
667  {
668  setBlocksPerRow(property->valueToString().toUInt32());
669  }
670  else if(name.contains(NBPC_KW))
671  {
672  setBlocksPerCol(property->valueToString().toUInt32());
673  }
674  else if(name.contains(NPPBH_KW))
675  {
676  setNumberOfPixelsPerBlockRow(property->valueToString().toUInt32());
677  }
678  else if(name.contains(NPPBV_KW))
679  {
680  setNumberOfPixelsPerBlockCol(property->valueToString().toUInt32());
681  }
682  else if(name.contains(NBPP_KW))
683  {
684  setBitsPerPixel(property->valueToString().toUInt32());
685  }
686  else if(name.contains(IDLVL_KW))
687  {
688  setDisplayLevel(property->valueToString());
689  }
690  else if(name.contains(IALVL_KW))
691  {
692  setAttachmentLevel(property->valueToString());
693  }
694  else if(name.contains(ILOC_KW))
695  {
696  }
697  else if(name.contains(IMAG_KW))
698  {
699  }
700  else
701  {
703  }
704 }
705 
707 {
708  ossimProperty* property = 0;
709 
710  if(name == IID1_KW)
711  {
712  property = new ossimStringProperty(name,
713  ossimString(theImageId).trim());
714  }
715  else if(name == IDATIM_KW)
716  {
717  property = new ossimStringProperty(name,
718  ossimString(theDateTime).trim());
719  }
720  else if(name == TGTID_KW)
721  {
722  property = new ossimStringProperty(name,
723  ossimString(theTargetId).trim());
724  }
725  else if((name == IID2_KW)||
726  (name == ITITLE_KW))
727  {
728  property = new ossimStringProperty(name,
729  ossimString(theTitle).trim());
730  }
731  else if(name == ISCLAS_KW)
732  {
733  property = new ossimStringProperty(name,
735  }
736  else if(name == ENCRYP_KW)
737  {
738  property = new ossimStringProperty(name,
739  ossimString(theEncryption).trim());
740  }
741  else if(name == ISORCE_KW)
742  {
743  property = new ossimStringProperty(name,
744  ossimString(theImageSource).trim());
745  }
746  else if(name == PVTYPE_KW)
747  {
748  property = new ossimStringProperty(name,
750  }
751  else if(name == IREP_KW)
752  {
753  property = new ossimStringProperty(name,
755  }
756  else if(name == ICAT_KW)
757  {
758  property = new ossimStringProperty(name,
759  ossimString(theCategory).trim());
760  }
761  else if(name == ABPP_KW)
762  {
763  property = new ossimStringProperty(name,
765  }
766  else if(name == PJUST_KW)
767  {
768  property = new ossimStringProperty(name,
769  ossimString(theJustification).trim());
770  }
771  else if(name == ICORDS_KW)
772  {
773  property = new ossimStringProperty(name,
775  }
776  else if(name == IGEOLO_KW)
777  {
778  property = new ossimStringProperty(name,
780  }
781  else if(name == NICOM_KW)
782  {
783  property = new ossimStringProperty(name,
785  }
786  else if(name == IC_KW)
787  {
788  property = new ossimStringProperty(name,
789  ossimString(theCompression).trim());
790  }
791  else if(name == COMRAT_KW)
792  {
793  property = new ossimStringProperty(name,
795  }
796  else if(name == ISYNC_KW)
797  {
798  property = new ossimStringProperty(name,
799  ossimString(theImageSyncCode).trim());
800  }
801  else if(name == IMODE_KW)
802  {
803  property = new ossimStringProperty(name,
804  ossimString(theImageMode).trim());
805  }
806  else if(name == NBPR_KW)
807  {
808  property = new ossimStringProperty(name,
810  }
811  else if(name == NBPC_KW)
812  {
813  property = new ossimStringProperty(name,
815  }
816  else if(name == NPPBH_KW)
817  {
818  property = new ossimStringProperty(name,
820  }
821  else if(name == NPPBV_KW)
822  {
823  property = new ossimStringProperty(name,
825  }
826  else if(name == NBPP_KW)
827  {
828  property = new ossimStringProperty(name,
830  }
831  else if(name == IDLVL_KW)
832  {
833  property = new ossimStringProperty(name,
834  ossimString(theDisplayLevel).trim());
835  }
836  else if(name == IALVL_KW)
837  {
838  property = new ossimStringProperty(name,
840  }
841  else if(name == ILOC_KW)
842  {
843  property = new ossimStringProperty(name,
844  ossimString(theImageLocation).trim());
845  }
846  else if(name == IMAG_KW)
847  {
848  property = new ossimStringProperty(name,
850  }
851  else if(name == "source")
852  {
853  property = new ossimStringProperty(name,
854  getImageSource());
855  }
856  else if(name == "image_date")
857  {
858  property = new ossimStringProperty(name,
860  }
861  else if(name == "image_title")
862  {
863  property = new ossimStringProperty(name,
864  getTitle());
865  }
866  else
867  {
869 
870  }
871  return property;
872 }
873 
874 void ossimNitfImageHeaderV2_X::getPropertyNames(std::vector<ossimString>& propertyNames)const
875 {
877  propertyNames.push_back(IID1_KW);
878  propertyNames.push_back(IDATIM_KW);
879  propertyNames.push_back(TGTID_KW);
880  propertyNames.push_back(IID2_KW);
881  propertyNames.push_back(ISCLAS_KW);
882  propertyNames.push_back(ENCRYP_KW);
883  propertyNames.push_back(ISORCE_KW);
884  propertyNames.push_back(PVTYPE_KW);
885  propertyNames.push_back(IREP_KW);
886  propertyNames.push_back(ICAT_KW);
887  propertyNames.push_back(ABPP_KW);
888  propertyNames.push_back(PJUST_KW);
889  propertyNames.push_back(ICORDS_KW);
890  propertyNames.push_back(IGEOLO_KW);
891  propertyNames.push_back(NICOM_KW);
892  propertyNames.push_back(IC_KW);
893  propertyNames.push_back(COMRAT_KW);
894  propertyNames.push_back(ISYNC_KW);
895  propertyNames.push_back(IMODE_KW);
896  propertyNames.push_back(NBPR_KW);
897  propertyNames.push_back(NBPC_KW);
898  propertyNames.push_back(NPPBH_KW);
899  propertyNames.push_back(NPPBV_KW);
900  propertyNames.push_back(NBPP_KW);
901  propertyNames.push_back(IDLVL_KW);
902  propertyNames.push_back(IALVL_KW);
903  propertyNames.push_back(ILOC_KW);
904  propertyNames.push_back(IMAG_KW);
905 
906  // Temp addition (drb)
907  propertyNames.push_back(ossimString("source"));
908  propertyNames.push_back(ossimString("image_date"));
909  propertyNames.push_back(ossimString("image_title"));
910 }
911 
913 {
915 }
916 
918 {
919  loc.x = ossimString((char*)(&theImageLocation[5])).toInt32();
920  loc.y = ossimString((char*)theImageLocation,
921  (char*)(&theImageLocation[5])).toInt32();
922 }
923 
925  const ossimDpt& ur,
926  const ossimDpt& lr,
927  const ossimDpt& ll)
928 {
929  if (traceDebug())
930  {
932  << ossimDms(ul.y, true).toString("ddmmss.ssssC").c_str()
933  << ossimDms(ul.x, false).toString("dddmmss.ssssC").c_str()
934  << ossimDms(ur.y, true).toString("ddmmss.ssssC").c_str()
935  << ossimDms(ur.x, false).toString("dddmmss.ssssC").c_str()
936  << ossimDms(lr.y, true).toString("ddmmss.ssssC").c_str()
937  << ossimDms(lr.x, false).toString("dddmmss.ssssC").c_str()
938  << ossimDms(ll.y, true).toString("ddmmss.ssssC").c_str()
939  << ossimDms(ll.x, false).toString("dddmmss.ssssC").c_str()
940  << std::endl;
941 
946  }
947 
948  theCoordinateSystem[0] = 'G';
949 
950  memcpy(theGeographicLocation,
951  ossimNitfCommon::encodeGeographicDms(ul,ur,lr,ll).c_str(), 60);
952 }
953 
955  const ossimDpt& ul,
956  const ossimDpt& ur,
957  const ossimDpt& lr,
958  const ossimDpt& ll)
959 {
960  theCoordinateSystem[0] = 'D';
961  memcpy(theGeographicLocation,
963  ul, ur, lr, ll).c_str(), 60);
964 }
965 
967  const ossimDpt& ul,
968  const ossimDpt& ur,
969  const ossimDpt& lr,
970  const ossimDpt& ll)
971 {
972  theCoordinateSystem[0] = 'N';
973 
974  memcpy(theGeographicLocation,
975  ossimNitfCommon::encodeUtm(zone, ul, ur, lr, ll).c_str(), 60);
976 }
977 
979  const ossimDpt& ul,
980  const ossimDpt& ur,
981  const ossimDpt& lr,
982  const ossimDpt& ll)
983 {
984  theCoordinateSystem[0] = 'S';
985 
986  memcpy(theGeographicLocation,
987  ossimNitfCommon::encodeUtm(zone, ul, ur, lr, ll).c_str(), 60);
988 }
989 
990 
992 {
993  bool result = ossimNitfImageHeader::saveState(kwl, prefix);
994 
995  kwl.add(prefix, IM_KW.c_str(), theType);
996  kwl.add(prefix, IID1_KW.c_str(), theImageId);
997  kwl.add(prefix, IDATIM_KW.c_str(), theDateTime);
998  kwl.add(prefix, TGTID_KW.c_str(), theTargetId);
999  kwl.add(prefix, IID2_KW.c_str(), theTitle);
1000  kwl.add(prefix, ISCLAS_KW.c_str(), theSecurityClassification);
1001  kwl.add(prefix, ENCRYP_KW.c_str(), theEncryption);
1002  kwl.add(prefix, ISORCE_KW.c_str(), theImageSource);
1003  kwl.add(prefix, NROWS_KW.c_str(), theSignificantRows);
1004  kwl.add(prefix, NCOLS_KW.c_str(), theSignificantCols);
1005  kwl.add(prefix, PVTYPE_KW.c_str(), thePixelValueType);
1006  kwl.add(prefix, IREP_KW.c_str(), theRepresentation);
1008  kwl.add(prefix, ICAT_KW.c_str(), theCategory);
1009  kwl.add(prefix, PJUST_KW.c_str(), theJustification);
1010  kwl.add(prefix, ICORDS_KW.c_str(), theCoordinateSystem);
1011  kwl.add(prefix, NICOM_KW.c_str(), theNumberOfComments);
1012  for (ossim_uint32 i=0; i < ossimString(theNumberOfComments).toUInt32(); ++i)
1013  {
1015  kwl.add(prefix, icpre.c_str(), theImageComments[i]);
1016  }
1017  kwl.add(prefix, IGEOLO_KW.c_str(), theGeographicLocation);
1018  kwl.add(prefix, IC_KW.c_str(), theCompression);
1019  kwl.add(prefix, COMRAT_KW.c_str(), theCompressionRateCode);
1020  kwl.add(prefix, NBANDS_KW.c_str(), theNumberOfBands);
1021  kwl.add(prefix, ISYNC_KW.c_str(), theImageSyncCode);
1022  kwl.add(prefix, IMODE_KW.c_str(), theImageMode);
1023  kwl.add(prefix, NBPR_KW.c_str(), theNumberOfBlocksPerRow);
1024  kwl.add(prefix, NBPC_KW.c_str(), theNumberOfBlocksPerCol);
1028  kwl.add(prefix, IDLVL_KW.c_str(), theDisplayLevel);
1029  kwl.add(prefix, IALVL_KW.c_str(), theAttachmentLevel);
1030  kwl.add(prefix, ILOC_KW.c_str(), theImageLocation);
1031  kwl.add(prefix, IMAG_KW.c_str(), theImageMagnification);
1033  kwl.add(prefix, UDOFL_KW.c_str(), theUserDefinedOverflow);
1037  kwl.add(prefix, BMRLNTH_KW.c_str(), theBlockMaskRecordLength);
1038 
1039  return result;
1040 }
1041 
1042 
1043 
1044 
1045 
1046 
char theSignificantRows[9]
FIELD: NROWS.
virtual void valueToString(ossimString &valueResult) const =0
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
static const ossimString NCOLS_KW
ossim_uint16 theBlockMaskRecordLength
FIELD NAME: BMRLNTH.
void setImageId(const ossimString &value)
static const ossimString NBPC_KW
char theNumberOfPixelsPerBlockVert[5]
FIELD: NPPBV.
static const ossimString ISYNC_KW
ossim_uint32 getNumberOfPixelsPerBlockCol() const
void setSecurityClassification(const ossimString &value)
void setPixelType(const ossimString &pixelType=ossimString("INT"))
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
char theNumberOfPixelsPerBlockHoriz[5]
FIELD: NPPBH.
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
std::basic_stringstream< char > stringstream
Class for char mixed input and output memory streams.
Definition: ossimIosFwd.h:38
virtual ossim_int32 getNumberOfBlocksPerRow() const =0
virtual ossim_int32 getNumberOfRows() const =0
static const ossimString TGTID_KW
void setNumberOfPixelsPerBlockRow(ossim_uint32 pixels)
char theCompressionRateCode[5]
FIELD COMRAT.
ossim_uint32 theBlockedImageDataOffset
FIELD NAME: IMDATOFF.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
void setActualBitsPerPixel(ossim_uint32 bitsPerPixel)
char theRepresentation[9]
FIELD: IREP.
static const ossimString IM_KW
static const ossimString PJUST_KW
virtual bool saveState(ossimKeywordlist &kwl, const ossimString &prefix="") const
Represents serializable keyword/value map.
static const ossimString COMRAT_KW
static const ossimString ICAT_KW
char theNumberOfBands[2]
FIELD: NBANDS.
const char * find(const char *key) const
virtual bool isValid() const
isValid will test if the fields are valid and will return true or false.
virtual void getImageLocation(ossimIpt &loc) const
Gets the ILOC field as an ossimIpt.
virtual void setUtmNorth(ossim_uint32 zone, const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
char theUserDefinedImageDataLength[6]
FIELD: UDIDL.
double y
Definition: ossimDpt.h:165
bool contains(char aChar) const
Definition: ossimString.h:58
static ossimString toString(bool aValue)
Numeric to string methods.
char theActualBitsPerPixelPerBand[3]
FIELD: ABPP.
void setEncryption(const ossimString &value)
static ossimString encodeUtm(ossim_uint32 zone, const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
This will encode a 60 character IGEOLO field.
ossim_uint32 toUInt32() const
char theNumberOfBitsPerPixelPerBand[3]
FIELD: NBPP.
char theNumberOfBlocksPerRow[5]
FIELD: NBPR.
static const ossimString NPPBV_KW
char theGeographicLocation[61]
FIELD: IGEOLO.
ossim_uint32 getAttachmentLevel() const
static const ossimString ICOM_KW
static const ossimString NBPR_KW
static const ossimString IID1_KW
static const ossimString ITITLE_KW
virtual ossimString getImageMagnification() const
Gets the IMAG field as a string.
void setGeographicLocation(const ossimString &value)
virtual bool saveState(ossimKeywordlist &kwl, const ossimString &prefix="") const
void checkForGeographicTiePointTruncation(const ossimDpt &tie) const
Method to check tie point to see if it will be truncated in field IGEOLO which has only arc second re...
char theImageId[11]
FIELD: IID1 Is a required 10 Alphanumeric value.
void setBitsPerPixel(ossim_uint32 bitsPerPixel)
ossim_int32 toInt32() const
char theExtendedSubheaderDataLen[6]
FIELD: IXSHDL.
void setTargetId(const ossimString &value)
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimString getSecurityClassification() const
void setBlocksPerRow(ossim_uint32 blocks)
char theImageMode[2]
FIELD: IMODE.
char theTargetId[18]
FIELD: TGTID.
char theImageLocation[11]
FIELD: ILOC.
char theImageSyncCode[2]
FIELD: ISYNC.
static const ossimString IMODE_KW
static const ossimString ISCLAS_KW
static const ossimString IGEOLO_KW
static const ossimString NROWS_KW
ossimString getAquisitionDateTime() const
virtual void setProperty(ossimRefPtr< ossimProperty > property)
void setDisplayLevel(const ossimString &value)
void setCategory(const ossimString &category)
char theAttachmentLevel[4]
FIELD: IALVL.
char theJustification[2]
FIELD: PJUST.
unsigned long long ossim_uint64
unsigned int ossim_uint32
virtual ossim_int32 getNumberOfCols() const =0
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
char theUserDefinedOverflow[4]
FIELD: UDOFL.
void setNumberOfComments(const ossimString &value)
static const ossimString NBPP_KW
double toDouble() const
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
static const ossimString IDATIM_KW
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
void setCompressionRateCode(const ossimString &value)
static const ossimString ABPP_KW
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
char theNumberOfBlocksPerCol[5]
FIELD: NBPC.
static const ossimString BMRLNTH_KW
void setNumberOfPixelsPerBlockCol(ossim_uint32 pixels)
ossim_uint32 getNumberOfPixelsPerBlockRow() const
static const ossimString IALVL_KW
static const ossimString UDIDL_KW
char theDisplayLevel[4]
FIELD: IDLVL.
void setAttachmentLevel(const ossimString &value)
static const ossimString NPPBH_KW
static const ossimString ILOC_KW
virtual void setGeographicLocationDecimalDegrees(const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
static const ossimString IMDATOFF_KW
static const ossimString IXSOFL_KW
char theImageSource[43]
FIELD: ISORCE.
ossimString getGeographicLocation() const
virtual ossim_int32 getNumberOfPixelsPerBlockVert() const =0
void setBlocksPerCol(ossim_uint32 blocks)
virtual void setUtmSouth(ossim_uint32 zone, const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
void setRepresentation(const ossimString &rep)
void setImageSource(const ossimString &value)
void setAquisitionDateTime(const ossimString &value)
static const ossimString ICORDS_KW
static const ossimString NICOM_KW
ossim_int32 y
Definition: ossimIpt.h:142
static const ossimString NBANDS_KW
char theSecurityClassification[2]
FIELD: ISCLAS.
static const ossimString IMAG_KW
static const ossimString UDOFL_KW
double x
Definition: ossimDpt.h:164
virtual ossimString getAcquisitionDateMonthDayYear(ossim_uint8 separationChar='-') const =0
static void setField(void *fieldDestination, const ossimString &src, std::streamsize width, std::ios_base::fmtflags ioflags=std::ios::left, char fill=' ')
Sets a field with a given string, width, and IOS flags.
static const ossimString IID2_KW
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
ossimString getCompressionRateCode() const
static ossimString encodeGeographicDms(const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
char theCoordinateSystem[2]
FIELD: ICORDS.
static const ossimString IXSHDL_KW
char theSignificantCols[9]
FIELD: NCOLS.
ossim_int32 x
Definition: ossimIpt.h:141
virtual ossimIrect getImageRect() const
Returns the zero based image rectangle.
virtual ossim_int32 getNumberOfBlocksPerCol() const =0
virtual void setGeographicLocationDms(const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
static const ossimString ISORCE_KW
static ossimString encodeGeographicDecimalDegrees(const ossimDpt &ul, const ossimDpt &ur, const ossimDpt &lr, const ossimDpt &ll)
void setCoordinateSystem(const ossimString &value)
void setCompression(const ossimString &value)
virtual ossim_int32 getNumberOfPixelsPerBlockHoriz() const =0
static const ossimString ENCRYP_KW
static const ossimString IDLVL_KW
void setTitle(const ossimString &value)
virtual ossimIrect getBlockImageRect() const
Returns the zero based image rectangle expanded out to block boundaries.
RTTI_DEF1(ossimNitfImageHeaderV2_X, "ossimNitfImageHeaderV2_X", ossimNitfImageHeader)
static const ossimString IC_KW
char theExtendedSubheaderOverflow[4]
FIELD: IXSOFL.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::vector< ossimString > theImageComments
char thePixelValueType[4]
FIELD: PVTYPE.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to set fields from a keyword list.
static const ossimString PVTYPE_KW
ossim_uint32 getActualBitsPerPixel() const
static const ossimString IREP_KW
ossimString toString(const ossimString &formatString=ossimString("")) const
You can specify a number of different formats.
Definition: ossimDms.cpp:294
void setJustification(const ossimString &value)
char theImageMagnification[5]
FIELD: IMAG.