(datum_code, datum_name, frame_reference_epoch, publication_date)
| 179 | |
| 180 | |
| 181 | def compute_publication_date(datum_code, datum_name, frame_reference_epoch, publication_date): |
| 182 | if frame_reference_epoch is not None: |
| 183 | epoch = float(frame_reference_epoch) |
| 184 | fractional = epoch - int(epoch) |
| 185 | if fractional == 0: |
| 186 | publication_date = '%04d-01-01' % int(epoch) |
| 187 | elif abs(fractional - 0.4) < 1e-6: |
| 188 | publication_date = '%04d-05-01' % int(epoch) |
| 189 | elif abs(fractional - 0.5) < 1e-6: |
| 190 | publication_date = '%04d-07-01' % int(epoch) |
| 191 | else: |
| 192 | assert False, (datum_code, datum_name, frame_reference_epoch, fractional) |
| 193 | elif publication_date != '': |
| 194 | if len(publication_date) == 4: |
| 195 | publication_date += '-01-01' |
| 196 | elif len(publication_date) == 7: |
| 197 | publication_date += '-01' |
| 198 | elif len(publication_date) == 4+1+4: |
| 199 | m = re.search('([0-9]{4})-([0-9]{4})', publication_date) |
| 200 | if m: |
| 201 | publication_date = m.group(1) |
| 202 | else: |
| 203 | assert False, (datum_code, datum_name, publication_date) |
| 204 | else: |
| 205 | assert len(publication_date) == 10, (datum_code, datum_name, publication_date) |
| 206 | else: |
| 207 | publication_date = None |
| 208 | return publication_date |
| 209 | |
| 210 | |
| 211 | def fill_geodetic_datum(proj_db_cursor): |
no test coverage detected