def residual(self, coordinates, model, as_grid): assert(not as_grid) self._update_image_configuration(coordinates, model.shape) # Degrid model. model_vis = self._degrid(coordinates, model) # Compute residual. residual = self._ms.getcol(self._data_column) - model_vis # Grid residual. args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT"] = numpy.ones(args["FLAG"].shape[:2], dtype=numpy.float32) args["DATA"] = residual casaimwrap.begin_grid(self._context, model.shape, \ coordinates.dict(), False, args) result = casaimwrap.end_grid(self._context, False) self._response_available = True return (result["image"], result["weight"])
def grid(self, coordinates, shape, as_grid): assert (not as_grid) self._update_image_configuration(coordinates, shape) args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = self._ms.getcol(self._data_column) # INI: Modified grid in casaimwrap to separate begin_grid, grid and end_grid '''casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False, args) result = casaimwrap.end_grid(self._context, False)''' casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False) casaimwrap.grid(self._context, \ args) result = casaimwrap.end_grid( self._context, False) # INI: why is this False? Insert proper options here self._response_available = True return (result["image"], result["weight"])
def grid(self, coordinates, shape, as_grid): assert(not as_grid) self._update_image_configuration(coordinates, shape) args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = self._ms.getcol(self._data_column) # INI: Modified grid in casaimwrap to separate begin_grid, grid and end_grid '''casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False, args) result = casaimwrap.end_grid(self._context, False)''' casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False) casaimwrap.grid(self._context, \ args) result = casaimwrap.end_grid(self._context, False) # INI: why is this False? Insert proper options here self._response_available = True return (result["image"], result["weight"])
def grid_chunk(self, coordinates, shape, as_grid, chunksize): assert (not as_grid) self._update_image_configuration(coordinates, shape) casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False) # INI: looping through chunks of data nrows = self._ms.nrows() lastchunksize = nrows % chunksize if lastchunksize > 0: nchunks = nrows / chunksize + 1 else: nchunks = nrows / chunksize print 'nrows, chunksize, lastchunksize: ', nrows, chunksize, lastchunksize for chunk in numpy.arange(nchunks): start = chunk * chunksize if chunk == nchunks - 1 and lastchunksize > 0: nrow = lastchunksize else: nrow = chunksize args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1", start, nrow) args["ANTENNA2"] = self._ms.getcol("ANTENNA2", start, nrow) args["UVW"] = self._ms.getcol("UVW", start, nrow) args["TIME"] = self._ms.getcol("TIME", start, nrow) args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID", start, nrow) args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW", start, nrow) args["FLAG"] = self._ms.getcol("FLAG", start, nrow) args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = self._ms.getcol(self._data_column, start, nrow) casaimwrap.grid(self._context, \ args) result = casaimwrap.end_grid( self._context, False) # INI: why is this False? Insert proper options here print "Result is ------------------: ", result self._response_available = True return (result["image"], result["weight"])
def grid_chunk(self, coordinates, shape, as_grid, chunksize): assert(not as_grid) self._update_image_configuration(coordinates, shape) casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ False) # INI: looping through chunks of data nrows = self._ms.nrows() lastchunksize = nrows % chunksize if lastchunksize > 0: nchunks = nrows / chunksize + 1 else: nchunks = nrows / chunksize print 'nrows, chunksize, lastchunksize: ', nrows, chunksize, lastchunksize for chunk in numpy.arange(nchunks): start = chunk * chunksize if chunk == nchunks-1 and lastchunksize > 0: nrow = lastchunksize else: nrow = chunksize args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1",start,nrow) args["ANTENNA2"] = self._ms.getcol("ANTENNA2",start,nrow) args["UVW"] = self._ms.getcol("UVW",start,nrow) args["TIME"] = self._ms.getcol("TIME",start,nrow) args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID",start,nrow) args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW",start,nrow) args["FLAG"] = self._ms.getcol("FLAG",start,nrow) args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = self._ms.getcol(self._data_column,start,nrow) casaimwrap.grid(self._context, \ args) result = casaimwrap.end_grid(self._context, False) # INI: why is this False? Insert proper options here print "Result is ------------------: ", result self._response_available = True return (result["image"], result["weight"])
def point_spread_function(self, coordinates, shape, as_grid): assert(not as_grid) self._update_image_configuration(coordinates, shape) args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT"] = self.imw.imaging_weight(args["UVW"], self.channel_frequency(), args["FLAG"], self._ms.getcol("WEIGHT_SPECTRUM")) args["DATA"] = numpy.ones(args["FLAG"].shape, dtype=numpy.complex64) casaimwrap.begin_grid(self._context, shape, coordinates.dict(), True, args) result = casaimwrap.end_grid(self._context, False) return (result["image"], result["weight"])
def point_spread_function(self, coordinates, shape, as_grid): assert(not as_grid) self._update_image_configuration(coordinates, shape) args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") #args["IMAGING_WEIGHT"] = self.imw.imaging_weight(args["UVW"], \ #self.channel_frequency(), args["FLAG"], self._ms.getcol("WEIGHT_SPECTRUM")) args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = numpy.ones(args["FLAG"].shape, dtype=numpy.complex64) casaimwrap.begin_grid(self._context, shape, coordinates.dict(), \ True, args) result = casaimwrap.end_grid(self._context, False) return (result["image"], result["weight"])
def residual(self, coordinates, model, as_grid): assert(not as_grid) self._update_image_configuration(coordinates, model.shape) # Degrid model. args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) result = casaimwrap.begin_degrid(self._context, \ coordinates.dict(), model, args) casaimwrap.end_degrid(self._context) # Compute residual. residual = self._ms.getcol(self._data_column) - result["data"] # Grid residual. args = {} args["ANTENNA1"] = self._ms.getcol("ANTENNA1") args["ANTENNA2"] = self._ms.getcol("ANTENNA2") args["UVW"] = self._ms.getcol("UVW") args["TIME"] = self._ms.getcol("TIME") args["TIME_CENTROID"] = self._ms.getcol("TIME_CENTROID") args["FLAG_ROW"] = self._ms.getcol("FLAG_ROW") args["FLAG"] = self._ms.getcol("FLAG") args["IMAGING_WEIGHT_CUBE"] = numpy.ones(args["FLAG"].shape, dtype=numpy.float32) args["DATA"] = residual casaimwrap.begin_grid(self._context, model.shape, \ coordinates.dict(), False, args) result = casaimwrap.end_grid(self._context, False) self._response_available = True return (result["image"], result["weight"])