def AppendVLTable (infile, outfile=outfile, err=err): """ Copy VL table ver 1 from infile to outfile infile = name of input FITS image file with VL table outfile = name of output FITS image file with extant VL table err = Python Obit Error/message stack """ ################################################################ # Get images inImage = Image.newPImage("Input image", infile, indisk, 1, err) outImage = Image.newPImage("Output image", outfile, outdisk, 1, err) OErr.printErrMsg(err, "Error creating image objects") # # obtain "AIPS VL" tables from each inTable = Image.PImageNewImageTable(inImage, 1, "AIPS VL", 1, err) outTable = Image.PImageNewImageTable(outImage, 3, "AIPS VL", 1, err) OErr.printErrMsg(err, "Error extracting AIPS VL table objects") # Concatenate Table.PTableConcat (inTable, outTable, err) OErr.printErrMsg(err, "Error concatenatinfg tables") print "Appended",infile,"to",outfile
def AppendVLTable (infile, outfile=outfile, err=err): """ Copy VL table ver 1 from infile to outfile infile = name of input FITS image file with VL table outfile = name of output FITS image file with extant VL table err = Python Obit Error/message stack """ ################################################################ # Get images inImage = Image.newPImage("Input image", infile, indisk, 1, err) outImage = Image.newPImage("Output image", outfile, outdisk, 1, err) OErr.printErrMsg(err, "Error creating image objects") # # obtain "AIPS VL" tables from each inTable = Image.PImageNewImageTable(inImage, 1, "AIPS VL", 1, err) outTable = Image.PImageNewImageTable(outImage, 3, "AIPS VL", 1, err) OErr.printErrMsg(err, "Error extracting AIPS VL table objects") # Concatenate Table.PConcat (inTable, outTable, err) OErr.printErrMsg(err, "Error concatenatinfg tables") print "Appended",infile,"to",outfile
["../PythonData/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # For debugging #print sys.argv #Obit.Bomb() # Get file names inFile = sys.argv[1] pntFile = sys.argv[2] outFile = sys.argv[3] inDisk = 1 outDisk = 1 # Set data inImage = Image.newPImage("Input image", inFile, inDisk, 1, err) pntImage = Image.newPImage("Pointing image", pntFile, inDisk, 1, err) outImage = Image.newPImage("Output image", outFile, outDisk, 0, err) Image.PClone(inImage, outImage, err) # Same structure etc. OErr.printErrMsg(err, "Error initializing") # do it - defaulting plane, antena size ImageUtil.PPBApply(inImage, pntImage, outImage, err) OErr.printErrMsg(err, "Error correcting image") # Say something print "PB applied to", inFile, "writing", outFile, ", using pointing from", pntFile # Shutdown Obit OErr.printErr(err) del ObitSys
ObitSys = OSystem.OSystem("OTFSub", 1, 103, 1, ["None"], 1, ["../FITSdata/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files disk = 1 inFile = "GBTDaisyX2OTF.fits" # input OTF data imageFile = "PythonDaisyXClean.fits" # Input image to subtract (clean) #imageFile= "PythonTDaisyX.fits" # Input image to subtract (dirty) outFile = "!GBTDaisyXSubOTF.fits" # output OTF data # Set data inData = OTF.newPOTF("Input data", inFile, disk, 1, err) outData = OTF.newPOTF("Output data", outFile, disk, 0, err) OTF.POTFClone(inData, outData, err) # Same structure etc modImage = Image.newPImage("Model Image", imageFile, disk, 1, err) OErr.printErrMsg(err, "Error initializing") # Read image imageData = Image.PImageReadPlane(modImage, err) imageDesc = Image.PImageGetDesc(modImage) OErr.printErrMsg(err, "Error reading image") # Subtract image from scratch OTFUtil.POTFUtilSubImage(inData, outData, imageData, imageDesc, err) OErr.printErrMsg(err, "Error subtracting image") # Say something print "Subtracted", imageFile, "from", inFile, " and wrote to", outFile # Shutdown Obit
# Program to generate a dirty beam import Image, ImageDesc, OSystem, OErr, FArray # Init Obit err = OErr.OErr() ObitSys = OSystem.OSystem("MakeDBeam", 1, 103, 1, ["None"], 1, ["../FITSdata/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files disk = 1 outFile = "!PythonDBeam.fits" # output image # Create image object outImage = Image.newPImage("Output image", outFile, disk, 0, err) OErr.printErrMsg(err, "Error initializing") # define image RA = 0.0 Dec = 0.0 nx = 51 ny = 51 xCells = 20.0 / 3600.0 yCells = 20.0 / 3600.0 beamsize = 2.2266e-2 # beamsize in deg. # Set image parameters in descriptor imagDesc = Image.PImageGetDesc(outImage) imagDict = ImageDesc.PImageDescGetDict(imagDesc) # descriptor as dictionary imagDict["ctype"][0] = "RA---SIN" imagDict["ctype"][1] = "DEC--SIN"
import OTF, Image, OSystem, OErr # Init Obit err = OErr.OErr() ObitSys = OSystem.OSystem("Python", 1, 103, 1, ["None"], 1, ["./"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files disk = 1 inFile = "GBTDaisyX2OTF.fits" # input OTF data dirtFile = "!CombDirty.fits" # output dirty image file beamFile = "DirtyBeam.fits" # input dirty beam image cleanFile = "!CombClean.fits" # output CLEAN image # Images for cleaning Beam = Image.newPImage("Dirty Beam", beamFile, disk, 1, err) Clean = Image.newPImage("Clean Image", cleanFile, disk, 0, err) # Set data inData = OTF.newPOTF("Input data", inFile, disk, 1, err) OErr.printErrMsg(err, "Error creating input data object") # delete any prior calibration tables OTF.ClearCal(inData, err) # Imaging parameters OTF.ImageInput["InData"] = inData OTF.ImageInput["disk"] = disk OTF.ImageInput["OutName"] = dirtFile OTF.ImageInput["ra"] = 24.42216 # Center RA OTF.ImageInput["dec"] = 33.15863 # Center Dec
OErr.printErrMsg(err, "Error with Obit startup") # For debugging #Obit.Bomb() # Get file names inFile = sys.argv[1] inDisk = 1 outDisk = 1 equinox = 2000.0 # Debug print "input",inFile # Convert file into Images inImage = Image.newPImage(inFile, inFile, inDisk, 1, err) OErr.printErrMsg(err, "Error initializing image") # Open/get descriptor Image.POpen(inImage, 3, err) desc = Image.PGetDesc(inImage) # update descriptor descDict = ImageDesc.PGetDict(desc) # Get descriptor as Python Dict descDict["epoch"] = equinox # Update "epoch" descDict["equinox"] = equinox # Update equinox descDict["origin"] = "Obit to fix equinox" # Update origin ImageDesc.PSetDict(desc, descDict) # update descriptor Image.PClose(inImage, err) # Close to update disk OErr.printErrMsg(err, "Error writing updated header for "+Image.PGetName(inImage))
# Init Obit err=OErr.OErr() ObitSys=OSystem.OSystem ("TestHist", 1, 100, 1, ["../AIPSdata/"], 1, ["../PythonData/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files (FITS) inDisk = 1 inFile = 'HiTest.fits' outFile = 'GaussTest.fits' # AIPS test AIPS image user 100 C346R422 .POLI . 2,, disk 8/142 aname = "C346R422" aclass = "POLI" aseq = 2 # Set data inImage = Image.newPImage("Input image", inFile, inDisk, 1, err) outImage = Image.newPAImage("Output image", aname, aclass, inDisk, aseq, 1, err) OErr.printErrMsg(err, "Error initializing") # For debugging #Obit.Bomb() # Make history inInfo = Image.PGetList(inImage) outInfo = Image.PGetList(outImage) history = History.History("history", outInfo, err) OErr.printErrMsg(err, "Error initializing history") History.POpen(history, 3, err) History.PTimeStamp(history,"Label",err) History.PTimeStamp(history,"Something longer",err) str = History.PReadRec(history,144,err)
import Image, OSystem, OErr, FArray # Init Obit err = OErr.OErr() ObitSys = OSystem.OSystem("ImageSub", 1, 103, 1, ["None"], 1, ["../FITSdata/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files disk = 1 inFile = "PythonDaisyXClean.fits" # input image in2File = "PythonTDaisyX.fits" # Input image to subtract outFile = "!PythonDaisyXCleanSub.fits" # output image # Set data inImage = Image.newPImage("Input image", inFile, disk, 1, err) in2Image = Image.newPImage("Input 2 image", in2File, disk, 1, err) outImage = Image.newPImage("Output image", outFile, disk, 0, err) Image.PImageClone(inImage, outImage, err) # Same structure etc. OErr.printErrMsg(err, "Error initializing") # Read images imageData = Image.PImageReadPlane(inImage, err) image2Data = Image.PImageReadPlane(in2Image, err) # Check compatability if not FArray.PFArrayIsCompatable(imageData, image2Data): raise RuntimeError, 'Images incompatable' # Subtract images FArray.PFArraySub(imageData, image2Data, imageData) # result in imageData
# Files (FITS) IPolDisk = 1 IPolFile = 'U_Ori_E_1.Icube.fits.gz' VPolDisk = 1 VPolFile = 'U_Ori_E_1.Vcube.fits' outDisk = 1 VPolFile = '00000+00000.PCUBE.gz' IPolFile = '00000+00000.PCUBE.gz' outFile = '!VPolCal.fits' # Set clipping factors RMSFactor = 10.0 MaxFactor = 0.20 # Set data IImage = Image.newPImage("Input IPol image", IPolFile, IPolDisk, True, err) VImage = Image.newPImage("Input VPol image", VPolFile, VPolDisk, True, err) OErr.printErrMsg(err, "Error initializing") # For debugging #Bomb() # Open images IImage.Open(Image.READONLY, err) VImage.Open(Image.READONLY, err) OErr.printErrMsg(err, "Error opening input") # Get image descriptors IdescDict = IImage.Desc.Dict Idim = IdescDict["inaxes"] # Dimensionality VdescDict = VImage.Desc.Dict
ObitSys=OSystem.OSystem ("TestIMMOD", 1, 100, 1, ["../AIPSdata/"], 1, ["../PythonData/"], 1, 0, err) OErr.printErrMsg(err, "Error with Obit startup") # Files (FITS) inDisk = 1 inFile = 'GaussTest.fits' outDisk = 1 outFile = '!TestIMMOD.fits' # Model amp = 1.0 Cen = [38.0, 41.0]; GauMod = [6.0, 3.0, 45.0] # Set data inImage = Image.newPImage("Input image", inFile, inDisk, 1, err) outImage = Image.newPImage("Output image", outFile, outDisk, 0, err) Image.PClone(inImage, outImage, err) # Same structure etc. OErr.printErrMsg(err, "Error initializing") # For debugging #Obit.Bomb() # Get FArray outArray = Image.PGetFArray (outImage) # Add Model #FArray.PEGauss2D(outArray, amp, Cen, GauMod) # Replace image with resolution FeatherUtil.PCreateModel(inImage, outArray)