Changeset 14444

Show
Ignore:
Timestamp:
05/11/08 04:10:22 (2 months ago)
Author:
rouault
Message:

Extented test for reading CGM, TRE and TEXT metadata

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/autotest/gdrivers/nitf.py

    r14438 r14444  
    241241 
    242242############################################################################### 
    243 # Verify that TRE access via the metadata domain works. 
     243# Verify that TRE and CGM access via the metadata domain works. 
    244244 
    245245def nitf_12(): 
     
    247247    ds = gdal.Open( 'data/fake_nsif.ntf' ) 
    248248 
    249     md = ds.GetMetadata( 'TRE' ) 
    250  
    251     ds = None 
    252  
    253     if md['BLOCKA'] != '010000001000000000                +41.319331+020.078400+41.317083+020.126072+41.281634+020.122570+41.283881+020.074924     ': 
    254         gdaltest.post_reason( 'did not find expected BLOCKA metadata.' ) 
     249    mdTRE = ds.GetMetadata( 'TRE' ) 
     250 
     251    blockA = ds.GetMetadataItem( 'BLOCKA', 'TRE' ) 
     252 
     253    mdCGM = ds.GetMetadata( 'CGM' ) 
     254 
     255    segmentCount = ds.GetMetadataItem( 'SEGMENT_COUNT', 'CGM' ) 
     256 
     257    ds = None 
     258 
     259    expectedBlockA = '010000001000000000                +41.319331+020.078400+41.317083+020.126072+41.281634+020.122570+41.283881+020.074924     ' 
     260 
     261    if mdTRE['BLOCKA'] != expectedBlockA: 
     262        gdaltest.post_reason( 'did not find expected BLOCKA from metadata.' ) 
     263        return 'fail' 
     264 
     265    if blockA != expectedBlockA: 
     266        gdaltest.post_reason( 'did not find expected BLOCKA from metadata item.' ) 
     267        return 'fail' 
     268 
     269    if mdCGM['SEGMENT_COUNT'] != '0': 
     270        gdaltest.post_reason( 'did not find expected SEGMENT_COUNT from metadata.' ) 
     271        return 'fail' 
     272 
     273    if segmentCount != '0': 
     274        gdaltest.post_reason( 'did not find expected SEGMENT_COUNT from metadata item.' ) 
    255275        return 'fail' 
    256276 
     
    386406    return 'success' 
    387407 
     408 
     409############################################################################### 
     410# Verify that TEXT access via the metadata domain works. 
     411 
     412def nitf_21(): 
     413 
     414    # Shut up the warning about missing image segment 
     415    gdal.PushErrorHandler( 'CPLQuietErrorHandler' ) 
     416    ds = gdal.Open( 'data/ns3114a.nsf' ) 
     417    gdal.PopErrorHandler() 
     418 
     419    mdTEXT = ds.GetMetadata( 'TEXT' ) 
     420 
     421    data0 = ds.GetMetadataItem( 'DATA_0', 'TEXT' ) 
     422 
     423    ds = None 
     424 
     425    if mdTEXT['DATA_0'] != 'A': 
     426        gdaltest.post_reason( 'did not find expected DATA_0 from metadata.' ) 
     427        return 'fail' 
     428 
     429    if data0 != 'A': 
     430        gdaltest.post_reason( 'did not find expected DATA_0 from metadata item.' ) 
     431        return 'fail' 
     432 
     433    return 'success' 
     434 
     435 
    388436############################################################################### 
    389437# Test NITF21_CGM_ANNO_Uncompressed_unmasked.ntf for bug #1313 and #1714 
     
    521569    return tst.testOpen() 
    522570 
     571 
     572############################################################################### 
     573# Verify that CGM access on a file with 8 CGM segments 
     574 
     575def nitf_online_10(): 
     576 
     577 
     578    if not gdaltest.download_file('http://www.gwg.nga.mil/ntb/baseline/software/testfile/Nitfv2_1/ns3119b.nsf', 'ns3119b.nsf'): 
     579        return 'skip' 
     580 
     581    # Shut up the warning about missing image segment 
     582    gdal.PushErrorHandler( 'CPLQuietErrorHandler' ) 
     583    ds = gdal.Open( 'tmp/cache/ns3119b.nsf' ) 
     584    gdal.PopErrorHandler() 
     585 
     586    mdCGM = ds.GetMetadata( 'CGM' ) 
     587 
     588    ds = None 
     589 
     590    if mdCGM['SEGMENT_COUNT'] != '8': 
     591        gdaltest.post_reason( 'wrong SEGMENT_COUNT.' ) 
     592        return 'fail' 
     593 
     594    tab = [ 
     595        ('SEGMENT_0_SLOC_ROW', '00000'), 
     596        ('SEGMENT_0_SLOC_COL', '00000'), 
     597        ('SEGMENT_1_SLOC_ROW', '00000'), 
     598        ('SEGMENT_1_SLOC_COL', '00684'), 
     599        ('SEGMENT_2_SLOC_ROW', '00000'), 
     600        ('SEGMENT_2_SLOC_COL', '01364'), 
     601        ('SEGMENT_3_SLOC_ROW', '00270'), 
     602        ('SEGMENT_3_SLOC_COL', '00000'), 
     603        ('SEGMENT_4_SLOC_ROW', '00270'), 
     604        ('SEGMENT_4_SLOC_COL', '00684'), 
     605        ('SEGMENT_5_SLOC_ROW', '00270'), 
     606        ('SEGMENT_5_SLOC_COL', '01364'), 
     607        ('SEGMENT_6_SLOC_ROW', '00540'), 
     608        ('SEGMENT_6_SLOC_COL', '00000'), 
     609        ('SEGMENT_7_SLOC_ROW', '00540'), 
     610        ('SEGMENT_7_SLOC_COL', '01364') 
     611        ] 
     612 
     613    for item in tab: 
     614        if mdCGM[item[0]] != item[1]: 
     615            gdaltest.post_reason( 'wrong value for %s.' % item[0] ) 
     616            return 'fail' 
     617 
     618    return 'success' 
    523619 
    524620############################################################################### 
     
    564660    nitf_19, 
    565661    nitf_20, 
     662    nitf_21, 
    566663    nitf_online_1, 
    567664    nitf_online_2, 
     
    573670    nitf_online_8, 
    574671    nitf_online_9, 
     672    nitf_online_10, 
    575673    nitf_cleanup ] 
    576674