@@ -173,6 +173,37 @@ def read(self, files, descriptions='', var_names=None):
173173 for file , desc , var in zip (all_files , desc_list , var_list ):
174174 self .append (Exposures ._read_one (file , desc , var ))
175175
176+ def remove (self , exp_id ):
177+ """Remove one exposure with given id.
178+
179+ Parameters:
180+ exp_id (list(int) or int): exposure ids.
181+ """
182+ if not isinstance (exp_id , list ):
183+ exp_id = [exp_id ]
184+ try :
185+ pos_del = []
186+ for one_id in exp_id :
187+ pos_del .append (np .argwhere (self .id == one_id )[0 ][0 ])
188+ except IndexError :
189+ LOGGER .info ('No exposure with id %s.' , exp_id )
190+ return
191+ self .coord = np .delete (self .coord , pos_del , axis = 0 )
192+ self .value = np .delete (self .value , pos_del )
193+ self .impact_id = np .delete (self .impact_id , pos_del )
194+ self .id = np .delete (self .id , pos_del )
195+ if self .deductible .size :
196+ self .deductible = np .delete (self .deductible , pos_del )
197+ if self .cover .size :
198+ self .cover = np .delete (self .cover , pos_del )
199+ if self .category_id .size :
200+ self .category_id = np .delete (self .category_id , pos_del )
201+ if self .region_id .size :
202+ self .region_id = np .delete (self .region_id , pos_del )
203+ old_assigned = self .assigned .copy ()
204+ for key , val in old_assigned .items ():
205+ self .assigned [key ] = np .delete (val , pos_del )
206+
176207 def append (self , exposures ):
177208 """Check and append variables of input Exposures to current Exposures.
178209
@@ -276,6 +307,12 @@ def coord(self, value):
276307 else :
277308 self ._coord = value
278309
310+ @property
311+ def size (self ):
312+ """ Get longitude from coord array """
313+ self .check ()
314+ return self .value .size
315+
279316 @staticmethod
280317 def _read_one (file_name , description = '' , var_names = None ):
281318 """Read one file and fill attributes.
0 commit comments