def get_subframe_from_roidata(roidata, obsID): indict = roidata.dict[obsID] ccd = indict['CCDColour'] fname = hirise_tools.getMosPathFromIDandCCD(obsID, ccd) centerX = int(indict['Map_Sample_Offset']) centerY = int(indict['Map_Line_Offset']) samples = int(indict['NSAMPLES']) lines = int(indict ['NLINES']) xOff = int(centerX) - samples / 2 yOff = int(centerY) - lines / 2 return SubFrame(fname, xOff, yOff, samples, lines)
import pickle args = sys.argv try: roi_data_file = args[1] except IndexError: print "Usage: {0} roi_data_file".format(args[0]) sys.exit(1) roidata = roi.ROI_Data() roidata.read_in(roi_data_file) roidict = roidata.dict for obsID in roidict: ccd = roidict[obsID]['CCDColour'] fname = hirise_tools.getMosPathFromIDandCCD(obsID, ccd) print fname ds = gdal.Open(fname, GA_ReadOnly) band = ds.GetRasterBand(1) xOff = roidict[obsID]['Map_Sample_Offset'] yOff = roidict[obsID]['Map_Line_Offset'] xCoreg = roidict[obsID]['CoReg_Sample_Offset'] yCoreg = roidict[obsID]['CoReg_Line_Offset'] xSize = roidict[obsID]['NSAMPLES'] ySize = roidict[obsID]['NLINES'] data = band.ReadAsArray(int(xOff) + int(xCoreg), int(yOff) + int(yCoreg), int(xSize), int(ySize)) data[np.where(data < 0)] = np.NaN with open(os.path.basename(fname) + '.pickled_array', 'w') as outfile: pickle.dump(data, outfile)