def test_getitem(self): """__getitem__ for sat scenes. """ # empty scene self.scene = SatelliteInstrumentScene() self.assertRaises(KeyError, self.scene.__getitem__, np.random.uniform(100)) self.assertRaises(KeyError, self.scene.__getitem__, int(np.random.uniform(10000))) self.assertRaises(KeyError, self.scene.__getitem__, random_string(4)) # scene with 3 channels channels = [["00_7", (0.5, 0.7, 0.9), 2500], ["06_4", (5.7, 6.4, 7.1), 5000], ["11_5", (10.5, 11.5, 12.5), 5000]] class SatelliteInstrumentScene2(SatelliteInstrumentScene): """Dummy satinst class. """ channel_list = channels self.scene = SatelliteInstrumentScene2() for chn in channels: self.assertEquals(self.scene[chn[0]].name, chn[0]) for i in range(3): self.assertEquals(self.scene[chn[1][i]].wavelength_range[i], chn[1][i]) self.assertEquals(self.scene[chn[2]].resolution, chn[2]) self.assertEquals(self.scene[(chn[0], chn[2])].name, chn[0]) self.assertRaises(KeyError, self.scene.__getitem__, []) self.assertRaises(KeyError, self.scene.__getitem__, random_string(5)) self.assertRaises(TypeError, self.scene.__getitem__, set([])) self.assertRaises(KeyError, self.scene.__getitem__, 5.0) self.assertEquals(len(self.scene.__getitem__(5000, aslist=True)), 2) chans = self.scene.__getitem__(5000, aslist=True) self.assertEquals(self.scene[chans[0].name].name, channels[1][0]) self.assertEquals(self.scene[chans[1].name].name, channels[2][0])
def create_scene(satname, satnumber, instrument, time_slot, orbit, area=None, variant=''): """Create a compound satellite scene. """ satellite = (satname, satnumber, variant) instrument_scene = SatelliteInstrumentScene(satellite=satellite, instrument=instrument, area=area, orbit=orbit, time_slot=time_slot) compositer = get_sat_instr_compositer(satellite, instrument) instrument_scene._CompositerClass = compositer if compositer is not None: # Pass weak ref to compositor to allow garbage collection instrument_scene.image = compositer( weakref.proxy(instrument_scene)) return instrument_scene