|
50 | 50 |
|
51 | 51 | class SICD_Fast_Reader: |
52 | 52 |
|
53 | | - def __init__(self, fname, metaformat = 'wrapped', preload = False): |
54 | | - with open(fname, 'rb') as f, sksicd.NitfReader(f) as reader: |
55 | | - # Create metadata attribute with SARKit metadata options |
56 | | - if metaformat == 'wrapped': |
57 | | - Meta = sksicd.ElementWrapper(reader.metadata.xmltree.getroot()) |
58 | | - elif metaformat == 'helper': |
59 | | - Meta = sksicd.XmlHelper(reader.metadata.xmltree) |
60 | | - else: |
61 | | - Meta = reader.metadata.xmltree |
62 | | - metaformat = 'xmltree' |
| 53 | + def __init__(self, fname, metaformat = 'wrapped', preload = False, chip = False): |
| 54 | + self.f = open(fname, 'rb') |
| 55 | + reader = sksicd.NitfReader(self.f) |
| 56 | + # Create metadata attribute with SARKit metadata options |
| 57 | + if metaformat == 'wrapped': |
| 58 | + Meta = sksicd.ElementWrapper(reader.metadata.xmltree.getroot()) |
| 59 | + elif metaformat == 'helper': |
| 60 | + Meta = sksicd.XmlHelper(reader.metadata.xmltree) |
| 61 | + else: |
| 62 | + Meta = reader.metadata.xmltree |
| 63 | + metaformat = 'xmltree' |
63 | 64 |
|
64 | | - if preload: |
65 | | - image = reader.read_image() |
66 | | - self.complex_image = image |
67 | | - else: |
68 | | - self.complex_image = None |
| 65 | + if preload: |
| 66 | + self.complex_image = reader.read_image() |
| 67 | + elif chip and len(chip) == 4: #[rowStart, ColStart, rowEnd, colEnd] |
| 68 | + self.complex_image = reader.read_sub_image(chip[0], chip[1], chip[2], chip[3])[0] |
| 69 | + preload = True |
| 70 | + else: |
| 71 | + self.complex_image = None |
| 72 | + |
| 73 | + |
69 | 74 |
|
70 | | - self.metadata = Meta |
71 | | - self.reader = reader |
72 | | - self.metaformat = metaformat |
73 | | - self._file_object = f |
74 | | - self.Preload = preload |
| 75 | + self.metadata = Meta |
| 76 | + self.reader = reader |
| 77 | + self.metaformat = metaformat |
| 78 | + |
| 79 | + self.Preload = preload |
75 | 80 |
|
76 | 81 | def image_to_llh(self, row, col): |
77 | 82 | Meta = self.metadata |
@@ -147,19 +152,13 @@ def llh_to_image(self, lat, lon): |
147 | 152 | image_coords = np.array([iRow, iCol]) |
148 | 153 | return(image_coords) |
149 | 154 |
|
150 | | - def Remap(self, chip = None, display = False): |
| 155 | + def Remap(self, display = False): |
151 | 156 | if not self.Preload: |
152 | 157 | raise ValueError('preload option must be turned on to use Remap function') |
153 | 158 | #remapClass = getattr(remap, alg) |
154 | 159 | remapClass = remap.Density() |
155 | | - |
156 | | - if chip == None: # Read full image because no chip specified |
157 | | - cmplx = self.complex_image |
158 | | - elif len(chip) == 4: # chip size entered with pixel coordinates |
159 | | - cmplx = self.complex_image[chip[0]:chip[1], chip[2]:chip[3]] |
160 | | - else: |
161 | | - raise ValueError('chip shoudl be formed as [rowStart, rowEnd, ColStart, ColEnd]') |
162 | | - |
| 160 | + cmplx = self.complex_image |
| 161 | + print(cmplx) |
163 | 162 | image = remapClass(cmplx) |
164 | 163 | if display: |
165 | 164 | import matplotlib.pyplot as plt |
|
0 commit comments