[docs]classPointDataset:def__init__(self,name:str,positions:Union[aa.Grid2DIrregular,List[List],List[Tuple]],positions_noise_map:Union[float,aa.ArrayIrregular,List[float]],fluxes:Optional[Union[aa.ArrayIrregular,List[float]]]=None,fluxes_noise_map:Optional[Union[float,aa.ArrayIrregular,List[float]]]=None,):""" A collection of the data component that can be used for point-source model-fitting, for example fitting the observed positions of a a strongly lensed quasar or supernovae or in strong lens cluster modeling, where there may be many tens or hundreds of individual source galaxies each of which are modeled as a point source. The name of the dataset is required for point-source model-fitting, as it pairs a point-source dataset with its corresponding point-source in the model-fit. For example, if a dataset has the name `source_1`, it will be paired with the `Point` model-component which has the name `source_1`. If a dataset component is not successfully paired with a model-component, an error is raised. Parameters ---------- name The name of the point source dataset which is paired to a `Point` in the `Model`. positions The image-plane (y,x) positions of the point-source. positions_noise_map The noise-value of every (y,x) position, which is typically the pixel-scale of the data. fluxes The image-plane flux of each observed point-source of light. fluxes_noise_map The noise-value of every observed flux. """self.name=nameifnotisinstance(positions,aa.Grid2DIrregular):positions=aa.Grid2DIrregular(values=positions)self.positions=positionsifisinstance(positions_noise_map,float):positions_noise_map=aa.ArrayIrregular(values=len(positions)*[positions_noise_map])ifnotisinstance(positions_noise_map,aa.ArrayIrregular):positions_noise_map=aa.ArrayIrregular(values=positions_noise_map)self.positions_noise_map=positions_noise_mapiffluxesisnotNone:ifnotisinstance(fluxes,aa.ArrayIrregular):fluxes=aa.ArrayIrregular(values=fluxes)self.fluxes=fluxesifisinstance(fluxes_noise_map,float):fluxes_noise_map=aa.ArrayIrregular(values=len(fluxes)*[fluxes_noise_map])iffluxes_noise_mapisnotNone:ifnotisinstance(fluxes_noise_map,aa.ArrayIrregular):fluxes_noise_map=aa.ArrayIrregular(values=fluxes_noise_map)self.fluxes_noise_map=fluxes_noise_map@propertydefinfo(self)->str:""" A dictionary representation of this instance. Arrays are represented as lists or lists of lists. """info=f"name : {self.name}\n"info+=f"positions : {self.positions}\n"info+=f"positions_noise_map : {self.positions_noise_map}\n"info+=f"fluxes : {self.fluxes}\n"info+=f"fluxes_noise_map : {self.fluxes_noise_map}\n"returninfodefextent_from(self,buffer:float=0.1):y_max=max(self.positions[:,0])+buffery_min=min(self.positions[:,0])-bufferx_max=max(self.positions[:,1])+bufferx_min=min(self.positions[:,1])-bufferreturn[y_min,y_max,x_min,x_max]