Skip to content

Instantly share code, notes, and snippets.

@braingram
braingram / iter_vs_dilation.py
Created March 11, 2024 18:23
iteration vs dilation
import time
import numpy as np
from scipy.ndimage import binary_dilation, binary_propagation
from stdatamodels.jwst.datamodels import dqflags
GOOD = dqflags.group["GOOD"]
DNU = dqflags.group["DO_NOT_USE"]
@braingram
braingram / test.json
Last active March 7, 2024 20:39
basic
{"$schema": "asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0", "id": "asdf://stsci.edu/datamodels/roman/schemas/wfi_image-1.0.0", "title": "The Schema for WFI Level 2 Images.", "datamodel_name": "ImageModel", "archive_meta": "None", "type": "object", "properties": {"meta": {"allOf": [{"$schema": "asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0", "id": "asdf://stsci.edu/datamodels/roman/schemas/common-1.0.0", "title": "Common metadata properties", "allOf": [{"$schema": "asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0", "id": "asdf://stsci.edu/datamodels/roman/schemas/basic-1.0.0", "title": "Basic Information", "type": "object", "properties": {"calibration_software_version": {"title": "Calibration Software Version Number", "description": "The version number of the calibration software used in processing this\nfile.\n", "tag": "asdf://stsci.edu/datamodels/roman/tags/calibration_software_version-1.0.0"}, "filename": {"title": "File Name", "description": "The auto-generated name of
@braingram
braingram / compare.py
Last active September 14, 2023 16:04
deepdiff asdf comparison
import copy
import pprint
import asdf
import astropy.time
from astropy.units import Quantity
import deepdiff
from deepdiff.operator import BaseOperator
import gwcs
from gwcs.converters.tests.test_wcs import _assert_wcs_equal
@braingram
braingram / memmap_vs_chunking.py
Last active April 28, 2023 21:43
Performance of memmapping vs chunking (zarr)
import os
import shutil
import time
import numpy
import zarr
n_times = 10
image_size = (4000, 4000, 50)
import asdf
import jwst.datamodels
import numpy
af = asdf.AsdfFile({'data': numpy.zeros((10, 10), dtype='f4')})
af.write_to('tmp.asdf')
with asdf.open('tmp.asdf', mode='r') as af:
m = jwst.datamodels.MultiExposureModel()
data = af['data']
assert data.__class__.__name__ == 'NDArrayType'
import io
import asdf
b = io.BytesIO(b"""#ASDF 1.0.0
#ASDF_STANDARD 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.1.0
@braingram
braingram / compare_enum_values.py
Created November 8, 2022 15:10
Comparing dither enum values in core.schema between current HEAD and PR
import requests
import yaml
old_schema_url = "https://raw.githubusercontent.com/spacetelescope/jwst/e154d67fa415ce526cfd9359ae4330bd56c112a6/jwst/datamodels/schemas/core.schema.yaml"
new_schema_url = "https://raw.githubusercontent.com/braingram/jwst/bug/schema_nonunique_enum/jwst/datamodels/schemas/core.schema.yaml"
enum_values = []
for url in (old_schema_url, new_schema_url):
with requests.get(url) as r:
d = yaml.safe_load(r.text)