def test_reproject_domain_if_tps_is_given(self): n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.reproject(d, tps=False) tmpfilename = os.path.join(self.tmp_data_path, 'nansat_reproject_domain.png') n.write_figure(tmpfilename, 2, clim='hist') self.assertEqual(n.shape(), (500, 500)) self.assertEqual(type(n[1]), np.ndarray) self.assertTrue(n.has_band('swathmask')) n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.reproject(d, tps=True) tmpfilename = os.path.join(self.tmp_data_path, 'nansat_reproject_domain.png') n.write_figure(tmpfilename, 2, clim='hist') self.assertEqual(n.shape(), (500, 500)) self.assertEqual(type(n[1]), np.ndarray) self.assertTrue(n.has_band('swathmask'))
def test_export_selected_bands(self): n = Nansat(self.test_file_gcps) resfile = 'tmp.nc' new_band = np.random.randn(n.shape()[0], n.shape()[1]) n.add_band(new_band, {'name': 'newBand'}) # Test with band numbers n.export(resfile, bands=[4, 2]) self.assertTrue(os.path.exists(resfile)) nn = Nansat(resfile) self.assertTrue(nn.has_band('newBand')) self.assertTrue(nn.has_band('L_555')) os.unlink(resfile)
def test_export_option(self): n = Nansat(self.test_file_arctic) tmpfilename = os.path.join(ntd.tmp_data_path, 'nansat_export_option.nc') # Test with band numbers n.export(tmpfilename, options='WRITE_LONLAT=YES') n.export(tmpfilename + '2', options=['WRITE_LONLAT=YES']) nn = Nansat(tmpfilename) nn2 = Nansat(tmpfilename + '2') self.assertTrue(nn.has_band('lon')) self.assertTrue(nn.has_band('lat')) self.assertTrue(nn.has_band('Bristol')) self.assertTrue(nn2.has_band('lon')) self.assertTrue(nn2.has_band('lat')) self.assertTrue(nn2.has_band('Bristol'))
def test_add_band_and_reproject(self): """ Should add band and swath mask and return np.nan in areas out of swath """ n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.add_band(np.ones(n.shape(), np.uint8)) n.reproject(d) b4 = n[4] # added, reprojected band b5 = n[5] # swathmask self.assertTrue(n.has_band('swathmask')) # the added band self.assertTrue(n.has_band('swathmask_0000')) # the actual swathmask self.assertTrue(b4[0, 0]==0) self.assertTrue(b4[300, 300] == 1) self.assertTrue(b5[0, 0]==0) self.assertTrue(b5[300, 300] == 1)
def test_add_band_and_reproject(self): """ Should add band and swath mask and return 0 in areas out of swath """ n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.add_band(np.ones(n.shape())) n.reproject(d) b1 = n[1] b4 = n[4] self.assertTrue(n.has_band('swathmask')) # the added band self.assertTrue(n.has_band('swathmask_0000')) # the actual swathmask self.assertTrue(b1[0, 0] == 0) self.assertTrue(b1[300, 300] > 0) self.assertTrue(np.isnan(b4[0, 0])) self.assertTrue(b4[300, 300] == 1.)
def test_has_band_if_standard_name_matches(self): n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) hb = n.has_band( 'surface_upwelling_spectral_radiance_in_air_emerging_from_sea_water' ) self.assertTrue(hb)
def test_reproject_no_addmask(self): ''' Should not add swath mask and return 0 in areas out of swath ''' n = Nansat(self.test_file_complex, logLevel=40) d = Domain(4326, '-te -92.08 26.85 -92.00 26.91 -ts 200 200') n.reproject(d, addmask=False) b = n[1] self.assertTrue(not n.has_band('swathmask')) self.assertTrue(np.isfinite(b[0, 0])) self.assertTrue(np.isfinite(b[100, 100]))
def test_reproject_no_addmask(self): """ Should not add swath mask and return 0 in areas out of swath """ n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) d = Domain(4326, '-te -92.08 26.85 -92.00 26.91 -ts 200 200') n.reproject(d, addmask=False) b = n[1] self.assertTrue(not n.has_band('swathmask')) self.assertTrue(np.isfinite(b[0, 0])) self.assertTrue(np.isfinite(b[100, 100]))
def test_reproject_domain_if_source_and_destination_domain_span_entire_lons(self, mock_Nansat): n = Nansat(self.test_file_arctic, log_level=40, mapper=self.default_mapper) d = Domain(4326, "-te -180 180 60 90 -ts 500 500") n.reproject(d) tmpfilename = os.path.join(self.tmp_data_path, 'nansat_reproject_domain.png') n.write_figure(tmpfilename, 2, clim='hist') self.assertEqual(n.shape(), (500, 500)) self.assertEqual(type(n[1]), np.ndarray) self.assertTrue(n.has_band('swathmask'))
def test_reproject_of_complex(self): ''' Should return np.nan in areas out of swath ''' n = Nansat(self.test_file_complex, logLevel=40) d = Domain(4326, '-te -92.08 26.85 -92.00 26.91 -ts 200 200') n.reproject(d) b = n[1] self.assertTrue(n.has_band('swathmask')) self.assertTrue(np.isnan(b[0, 0])) self.assertTrue(np.isfinite(b[100, 100]))
def test_reproject_of_complex(self): """ Should return np.nan in areas out of swath """ n = Nansat(self.test_file_complex, log_level=40, mapper=self.default_mapper) d = Domain(4326, '-te -92.08 26.85 -92.00 26.91 -ts 200 200') n.reproject(d) b = n[1] self.assertTrue(n.has_band('swathmask')) self.assertTrue(np.isnan(b[0, 0])) self.assertTrue(np.isfinite(b[100, 100]))
def test_reproject_domain(self): n = Nansat(self.test_file_gcps, logLevel=40) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.reproject(d) tmpfilename = os.path.join(ntd.tmp_data_path, 'nansat_reproject_domain.png') n.write_figure(tmpfilename, 2, clim='hist') self.assertEqual(n.shape(), (500, 500)) self.assertEqual(type(n[1]), np.ndarray) self.assertTrue(n.has_band('swathmask'))
def test_add_band_and_reproject(self): ''' Should add band and swath mask and return 0 in areas out of swath ''' n = Nansat(self.test_file_gcps, logLevel=40) d = Domain(4326, "-te 27 70 30 72 -ts 500 500") n.add_band(np.ones(n.shape())) n.reproject(d) b1 = n[1] b4 = n[4] self.assertTrue(n.has_band('swathmask')) self.assertTrue(b1[0, 0] == 0) self.assertTrue(b1[300, 300] > 0) self.assertTrue(np.isnan(b4[0, 0])) self.assertTrue(b4[300, 300] == 1.)
def test_mappers_advanced(self): ''' Run similar NansenCloud reated tests for all mappers ''' for fileName, mapperName in self.testData.mapperData: sys.stderr.write('\nMapper '+mapperName+' -> '+fileName+'\n') n = Nansat(fileName, mapperName=mapperName) yield self.is_correct_mapper, n, mapperName yield self.has_start_time, n yield self.has_end_time, n yield self.has_correct_platform, n yield self.has_correct_instrument, n # Test that SAR objects have sigma0 intensity bands in addition # to complex bands if n.has_band( 'surface_backwards_scattering_coefficient_of_radar_wave' ): yield self.exist_intensity_band, n
def test_mappers_advanced(self): ''' Run tests to check DIF/GCMD metadata content in all mappers''' for dd in self.testData.mapperData: sys.stderr.write('\nMapper ' + dd['mapperName'] + ' -> ' + dd['fileName'] + '\n') n = Nansat(dd['fileName'], mapperName=dd['mapperName']) yield self.is_correct_mapper, n, dd['mapperName'] yield self.has_metadata_time_coverage_start, n yield self.has_metadata_time_coverage_end, n yield self.has_metadata_platform, n yield self.has_metadata_instrument, n # Test that SAR objects have sigma0 intensity bands in addition # to complex bands if n.has_band( 'surface_backwards_scattering_coefficient_of_radar_wave'): yield self.exist_intensity_band, n
def test_has_band_if_name_matches(self): n = Nansat(self.test_file_gcps, log_level=40, mapper=self.default_mapper) hb = n.has_band('L_645') self.assertTrue(hb)
def test_has_band(self): n = Nansat(self.test_file_gcps, logLevel=40) hb = n.has_band('L_645') self.assertTrue(hb)