Imaging, analysis, and simulation software for radio interferometry

Overview

ehtim (eht-imaging)

Python modules for simulating and manipulating VLBI data and producing images with regularized maximum likelihood methods. This version is an early release so please raise an issue, submit a pull request, or email [email protected] if you have trouble or need help for your application.

The package contains several primary classes for loading, simulating, and manipulating VLBI data. The main classes are the Image, Movie, Array, Obsdata, Imager, and Caltable classes, which provide tools for loading images and data, producing simulated data from realistic u-v tracks, calibrating, inspecting, and plotting data, and producing images from data sets in various polarizations using various data terms and regularizing functions.

Installation

The latest stable version (1.2.3) is available on PyPi. Simply install pip and run

pip install ehtim

Incremental updates are developed on the dev branch. To use the very latest (unstable) code, checkout the dev branch, change to the main eht-imaging directory, and run:

pip install .

Installing with pip will update most of the required libraries automatically (numpy, scipy, matplotlib, astropy, ephem, future, h5py, and pandas).

If you want to use fast fourier transforms, you will also need to separately install NFFT and its pynfft wrapper. The simplest way is to use conda to install both:

conda install -c conda-forge pynfft

Alternatively, first install NFFT manually following the instructions on the readme, making sure to use the --enable-openmp flag in compilation. Then install pynfft, with pip, following the readme instructions to link the installation to where you installed NFFT. Finally, reinstall ehtim.

Certain eht-imaging functions require other external packages that are not automatically installed. In addition to pynfft, these include networkx (for image comparison functions), requests (for dynamical imaging), and scikit-image (for Hough transforms). However, the vast majority of the code will work without these dependencies.

Documentation

Documentation is here .

A full tutorial is in progress, but here are some ways to learn to use the code:

  • Start with the script examples/example.py, which contains a series of sample commands to load an image and array, generate data, and produce an image with various imaging algorithms.
  • Slides from the EHT2016 data generation and imaging workshop contain a tutorial on generating data with the VLBI imaging website, loading into the library, and producing an image.

Some publications that use ehtim

If you use ehtim in your publication, please cite Chael+ 2018

Let us know if you use ehtim in your publication and we'll list it here!

  • High-Resolution Linear Polarimetric Imaging for the Event Horizon Telescope, Chael et al. 2016
  • Computational Imaging for VLBI Image Reconstruction, Bouman et al. 2016
  • Stochastic Optics: A Scattering Mitigation Framework for Radio Interferometric Imaging, Johnson 2016
  • Reconstructing Video from Interferometric Measurements of Time-Varying Sources, Bouman et al. 2017
  • Dynamical Imaging with Interferometry, Johnson et al. 2017
  • Interferometric Imaging Directly with Closure Phases and Closure Amplitudes, Chael et al. 2018
  • A Model for Anisotropic Interstellar Scattering and its Application to Sgr A*, Psaltis et al. 2018
  • The Currrent Ability to Test Theories of Gravity with Black Hole Shadows, Mizuno et al. 2018
  • The Scattering and Intrinsic Structure of Sagittarius A* at Radio Wavelengths, Johnson et al. 2018
  • Testing GR with the Black Hole Shadow Size and Asymmetry of Sagittarius A*: Limitations from Interstellar Scattering, Zhu et al. 2018
  • The Size, Shape, and Scattering of Sagittarius A* at 86 GHz: First VLBI with ALMA, Issaoun et al. 2019a
  • First M87 Event Horizon Telescope Results IV: Imaging the Central Supermassive Black Hole, EHTC et al. 2019
  • VLBI Imaging of black holes via second moment regularization, Issaoun et al. 2019b
  • Using evolutionary algorithms to model relativistic jets: Application to NGC 1052, Fromm et al. 2019
  • EHT-HOPS Pipeline for Millimeter VLBI Data Reduction, Blackburn et al. 2019
  • Multi-wavelength torus-jet model for Sagittarius A*, Vincent et al. 2019
  • How to tell an accreting boson star from a black hole, Olivares et al. 2020
  • Discriminating Accretion States via Rotational Symmetry in Simulated Polarimetric Images of M87, Palumbo et al. 2020
  • SYMBA: An end-to-end VLBI synthetic data generation pipeline, Roelofs et al. 2020
  • Monitoring the Morphology of M87* in 2009-2017 with the Event Horizon Telescope, Wielgus et al. 2020
  • EHT imaging of the archetypal blazar 3C 279 at extreme 20 microarcsecond resolution, Kim et al. 2020
  • Verification of Radiative Transfer Schemes for the EHT, Gold et al. 2020
  • Closure Traces: Novel Calibration-insensitive Quantities for Radio Astronomy, Broderick and Pesce. 2020
  • Evaluation of New Submillimeter VLBI Sites for the Event Horizon Telescope, Raymond et al. 2021
  • Imaging VGOS Observations and Investigating Source Structure Effects, Xu et al. 2021
  • A D-term Modeling Code (DMC) for Simultaneous Calibration and Full-Stokes Imaging of VLBI Data, Pesce et al. 2021
  • Polarization Images of Accretion Flows around Supermassive BLack Holes: Imprints of Toroidal Field Structure, Tsunetoe et al. 2021
  • Using space-VLBI to probe gravity around Sgr A*, Fromm et al. 2021
  • Persistent Non-Gaussian Structure in the Image of Sagittarius A* at 86 GHz, Issaoun et al. 2021
  • First M87 Event Horizon Telescope Results. VII. Polarization of the Ring, EHTC et al. 2021
  • Event Horizon Telescope observations of the jet launching and collimation in Centaurus A, Janssen et al. 2021

Documentation

The oifits_new code used for reading/writing .oifits files is a slightly modified version of Paul Boley's package at http://astro.ins.urfu.ru/pages/~pboley/oifits. The oifits read/write functionality is still being developed and may not work with all versions of python or astropy.

The documentation is styled after dfm's projects

License

ehtim is licensed under GPLv3. See LICENSE.txt for more details.

Comments
  • add dockerfile

    add dockerfile

    Adds a dockerfile. https://www.docker.com/ Docker basically lets you configure a development environment as code so no one needs to install python/pip/conda on their computers. I wanted to add this in to encourage more people to contribute, it should let people get up and running in 2 minutes.

    Building the image:

    docker build -t eht-imaging .
    

    Running the image:

    docker run -v "$(pwd)":/eht-imaging -it eht-imaging:latest bash
    

    At this point you're ready to develop or can cd into ./examples and run python example.py.

    opened by stevenaldinger 8
  • lint code

    lint code

    Hope this isn't aggressive in any way and I'm not explaining something you all already know but linting makes code more maintainable and easier for a community to get behind by adhering to certain stylistic conventions and can help catch bugs as well as make things very readable for people familiar with the language.

    https://en.wikipedia.org/wiki/Lint_(software)

    There's a project called autopep8 that automatically runs pylint and fixes the formatting errors.

    pip install --upgrade autopep8 installs it.

    I wrote this command to go through and automatically update every .py file.

    find . -type f -name '*.py' -exec autopep8 --in-place --aggressive --aggressive {} \;

    opened by stevenaldinger 4
  • (joseph-dev) Added functions for file load-in and scan selection

    (joseph-dev) Added functions for file load-in and scan selection

    Two functions added:

    • load_obs(): takes in any observation file (or in the case of MAPS, multiple files) and uses the extension and input arguments to determine how to load the file. For uvfits, txt, and oifits files, extension is used and passed to the corresponding function. For MAPS, it checks for two additional arguments, obsspec and ifile. The function has knowledge of all the arguments for load_uvfits(), load_txt(), load_oifits(), and load_maps(), and the arguments can be passed to load_obs() as if you were using the legacy function calls. Example usage: ehtim.obsdata.load_obs("./sample_data.uvfits"), ehtim.obsdata.load_obs("./sample_data.txt", polrep='stokes'). Tested on txt and uvfits files, but I couldn't get my hands on any oifits or MAPS files quickly.
    • getClosestScan(): returns the scan of an observation closest in time to the argument. Uses obs.split_obs() to get a list of scans for an observation, and then checks each scan's tstart value to figure out which is closest in time to the argument. If you want to save time, you can preload the output of split_obs to getClosestScan() as an argument and it will skip generating it. Time is input in GMST. Example usage: obs.getClosestScan(4) and obs.getClosestScan(4, splitObs=obs.split_obs()). Tested on sample data file in data/.
    opened by jrfarah 3
  • `afmhot` is Not A Perceptually Uniform Colormap

    `afmhot` is Not A Perceptually Uniform Colormap

    Cool picture, guys! But it seems like you've chosen a non-perceptually uniform colormap, which means that humans are likely to slightly misinterpret the image. It'd be great to see this historic image in something more human-comprehensible, like viridis or plasma rather than afmhot!

    opened by Miserlou 3
  • zero-size array when running imager_func

    zero-size array when running imager_func

    I'm calling the imager_func like this: zbl = 0.28 cfloor = 0.0028 niter = 300 conv_criteria = 0.0001 out = eh.imager_func( obs, gaussprior, gaussprior, zbl, d1='cphase', d2='camp', s1='gs', s2='gs', alpha_d1=50, alpha_d2=50, clipfloor=cfloor, maxit=niter, stop=conv_criteria )

    The gaussprior is a single gaussian.

    I get the following error and traceback:

    /home/lmorabit/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.pyc in imager_func(Obsdata, InitIm, Prior, flux, d1, d2, d3, alpha_d1, alpha_d2, alpha_d3, s1, s2, s3, alpha_s1, alpha_s2, alpha_s3, alpha_flux, alpha_cm, **kwargs) 294 # Print stats 295 print("Initial S_1: %f S_2: %f S_3: %f" % (reg1(ninit), reg2(ninit), reg3(ninit))) --> 296 print("Initial Chi^2_1: %f Chi^2_2: %f Chi^2_3: %f" % (chisq1(ninit), chisq2(ninit), chisq3(ninit))) 297 print("Initial Objective Function: %f" % (objfunc(xinit))) 298

    /home/lmorabit/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.pyc in chisq2(imvec) 199 200 def chisq2(imvec): --> 201 return chisq(imvec, A2, data2, sigma2, d2, ttype=ttype, mask=embed_mask) 202 203 def chisq2grad(imvec):

    /home/lmorabit/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.pyc in chisq(imvec, A, data, sigma, dtype, ttype, mask) 373 chisq = chisq_cphase(imvec, A, data, sigma) 374 elif dtype == 'camp': --> 375 chisq = chisq_camp(imvec, A, data, sigma) 376 elif dtype == 'logcamp': 377 chisq = chisq_logcamp(imvec, A, data, sigma)

    /home/lmorabit/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.pyc in chisq_camp(imvec, Amatrices, clamp, sigma) 739 def chisq_camp(imvec, Amatrices, clamp, sigma): 740 """Closure Amplitudes (normalized) chi-squared""" --> 741 print( np.min(imvec) ) 742 print( np.min(Amatrices[1] ) ) 743 clamp_samples = np.abs(np.dot(Amatrices[0], imvec) * np.dot(Amatrices[1], imvec) / (np.dot(Amatrices[2], imvec) * np.dot(Amatrices[3], imvec)))

    /usr/lib64/python2.7/site-packages/numpy/core/fromnumeric.pyc in amin(a, axis, out, keepdims) 2370 2371 return _methods._amin(a, axis=axis, -> 2372 out=out, **kwargs) 2373 2374

    /usr/lib64/python2.7/site-packages/numpy/core/_methods.pyc in _amin(a, axis, out, keepdims) 27 28 def _amin(a, axis=None, out=None, keepdims=False): ---> 29 return umr_minimum(a, axis, None, out, keepdims) 30 31 def _sum(a, axis=None, dtype=None, out=None, keepdims=False):

    ValueError: zero-size array to reduction operation minimum which has no identity

    opened by lmorabit 3
  • Fix dependencies

    Fix dependencies

    • The requirements.txt is now installable by pip install -r requirements.txt.
      • Pip couldn't figure out how to install pynfft (due to external dependency) and pyfits (due to depending on an old setuptools).
    • Removed unnecessary dependencies (pyfits, html).
    • Added environment.yml. This gives a pinned set of packages on which eht-imaging works.
    • Updated Dockerfile to Python 3.x.
    opened by charmoniumQ 2
  • Move docker base image to conda3

    Move docker base image to conda3

    This migrates the docker image to the python 3

    Python has the html package included in the standard library so I also changed the requirements.txt file to only install html when using python 2

    opened by gquarles 2
  • Congratulations on the big achievement!

    Congratulations on the big achievement!

    Sorry to open this as an issue, but I really wanted to say congrats to your whole team who made it possible to achieve something truly incredible. I really wish people could admire work like this a billion times than all the celebrities and stuff they usually admire. Brilliant work and kudos to your complete team!

    @chanchikwan @lindyblackburn @klbouman @danielpalumbo @jrfarah

    :DDDDDDD

    opened by mehulmpt 2
  • Mismatched dimensions

    Mismatched dimensions

    Hi,

    I am attempting to make some models for the international baselines of LOFAR using the EHT imager but I have stumbled on an error with the imaging function I do not quite understand.

    This is how I call it:

    eh.imager_func( obs, gaussprior, gaussprior, zbl, d1='cphase', d2='camp', s1='gs', s2='gs', alpha_d1=50, alpha_d2=50, clipfloor=0.001, maxit=300, stop=0.0001 )

    Obs is generated from a measurement set (which was turned into uvfits).

    Sorry if this is obscure but it looks like a dimensional issue. Let me know if you need extra information. Hopefully this is a simple issue and a mistake on my behalf.

    Thanks!

    Joe

    
    Getting bispectra:: type vis, count min, scan 3370/3370 
    
    /home/callingham/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.py:2251: RuntimeWarning: invalid value encountered in greater
      snrmask = np.abs(clphasearr['cphase']/clphasearr['sigmacp']) > snrcut
    Traceback (most recent call last):
      File "eht_imaging_joe.py", line 371, in <module>
        main( args.vis, closure_tels = args.ctels, npix = args.npix, fov_arcsec = args.fov, maxarcmin = args.maxarcmin, zbl = args.zbl, prior_fwhm_arcsec = args.prior_fwhm, doplots = args.doplots, imfile = args.imfile, remove_tels = args.rtels, niter=args.maxiter, cfloor=args.clipfloor, conv_criteria=args.convg, use_bs=args.use_bs, scratch_model=args.scratch_model, do_diagnostic_plots=args.diagplots, lotss_file=args.lotss_file )
      File "eht_imaging_joe.py", line 320, in main
        out = eh.imager_func( obs, gaussprior, gaussprior, zbl, d1='cphase', d2='camp', s1='gs', s2='gs', alpha_d1=50, alpha_d2=50, clipfloor=cfloor, maxit=niter, stop=conv_criteria )
      File "/home/callingham/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.py", line 190, in imager_func
        (data1, sigma1, A1) = chisqdata(Obsdata, Prior, embed_mask, d1, **kwargs)
      File "/home/callingham/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.py", line 625, in chisqdata
        (data, sigma, A) = chisqdata_cphase(Obsdata, Prior, mask, **kwargs)
      File "/home/callingham/.local/lib/python2.7/site-packages/ehtim/imaging/imager_utils.py", line 2259, in chisqdata_cphase
        sigma = np.linalg.norm([sigma, systematic_cphase_noise*np.ones(len(sigma))], axis=0)[snrmask]
    IndexError: boolean index did not match indexed array along dimension 0; dimension is 70628 but corresponding boolean dimension is 70631
    Exception TypeError: TypeError("'NoneType' object is not callable",) in <bound method UmfpackContext.new_del of <scipy.sparse.linalg.dsolve.umfpack.umfpack.UmfpackContext object at 0x4f39910>> ignored
    
    opened by jrcallingham 2
  • Running example.py throws a NameError

    Running example.py throws a NameError

    I tried running example.py line by line in a Python terminal but it fails. It throws an error specifically on line 76 of example.py:

    out = eh.imager_func(obs, gaussprior, gaussprior, flux, d1 = 'bs', s1 = 'simple', alpha_s1 = 1, alpha_d1 = 100, alpha_flux = 100, alpha_cm = 50, maxit = 100)

    Here's the traceback:

    Getting bispectra: type: vis count: min scan 107/107 Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/sean/eht/eht-imaging/ehtim/imaging/imager_utils.py", line 178, in imager_func
        (data1, sigma1, A1) = chisqdata(Obsdata, Prior, embed_mask, d1, **kwargs)#ttype=ttype, fft_pad_factor=fft_pad_factor, conv_func=grid_conv, p_rad=grid_prad, order=fft_interp, debias=debias,snrcut=snrcut)
      File "/home/sean/eht/eht-imaging/ehtim/imaging/imager_utils.py", line 583, in chisqdata
        (data, sigma, A) = chisqdata_bs(Obsdata, Prior, mask, **kwargs)
      File "/home/sean/eht/eht-imaging/ehtim/imaging/imager_utils.py", line 1884, in chisqdata_bs
        snrmask = np.abs(biarr['bispec']/data_arr['sigmab']) > snrcut
    NameError: name 'data_arr' is not defined
    

    Where should I define the global name data_arr for it to work?

    opened by mooneyse 2
  • starwarps lightcurve can't be subscripted when None

    starwarps lightcurve can't be subscripted when None

    There were two instances where a getMeasurementTerms function call used argument tot_flux=lightcurve[t], despite lightcurve=None, so when running starwarps, I would get the error: "NoneType not subscriptable."

    I fixed this by just adding if statements.

    opened by abao1999 1
  • pyNFFT for M1 Mac (M1 Pro, M1 Max etc.)

    pyNFFT for M1 Mac (M1 Pro, M1 Max etc.)

    conda install -c conda-forge pynfft will not work for newer M1 Mac / M1 Pro / M1 Max

    I have forked the pyNFFT git repository here https://github.com/rohandahale/pyNFFT.git and I have written down step-by-step instructions for installing pyNFFT on M1 Macs. I have also made small edit to the setup.py file to use gcc-12 as the C compiler which works the best for installation with openmp.

    It could be helpful if this repository link is added as a small note for pynfft installation in the README.md.

    opened by rohandahale 0
  • Remove requirement for jupyter?

    Remove requirement for jupyter?

    This line seems not to be necessary - the import isn't used and I successfully used the library without it. If removed, eht-imaging will no longer require the installation of the jupyter libraries, which would be nice.

    https://github.com/achael/eht-imaging/blob/bbd3aeb06bef52bf89fa1c06de71e5509a5b0015/ehtim/modeling/modeling_utils.py#L49

    opened by aaron-sao 0
  • Increase the usage of augmented assignment statements

    Increase the usage of augmented assignment statements

    :eyes: Some source code analysis tools can help to find opportunities for improving software components. :thought_balloon: I propose to increase the usage of augmented assignment statements accordingly.

    Would you like to integrate anything from a transformation result which can be generated by a command like the following? (:point_right: Please check also for questionable change suggestions because of an evolving search pattern.)

    lokal$ perl -p -i.orig -0777 -e 's/^(?<indentation>\s+)(?<target>\S+)\s*=\s*\k<target>[ \t]*(?<operator>[+%^@]|-(?!>)|&(?!&)|\|(?!\|)|\*\*?|\/\/?|<<|>>)/$+{indentation}$+{target} $+{operator}=/gm' $(find ~/Projekte/eht-imaging/lokal -name '*.py')
    
    opened by elfring 0
  • reorder_baselines loses data

    reorder_baselines loses data

    The reorder_baselines method of the Obsdata class assumes that any observations obtained on telescopes (t1, t2) and (t2, t1) are conjugates of each other, and throws away one of the two. However, this is not generally they case, in particular if the observations were obtained at different times and/or frequencies.

    I discovered this when importing an OIFITS file, only to find that of the 60 or so wavelengths in the file, only a single one remains after reorder_baselines is run.

    opened by pboley 0
  • No NFFT Installed issue

    No NFFT Installed issue

    Describe the bug Program says that no NFFT is installed after following installation instructions in the README.

    To Reproduce Steps to reproduce the behavior: 1.Install NFFT and pynfft with conda as described in readme 2. Clone repository 3. Build with dockerfile 3. Run dockerfile 4. Run first 35 lines of examples/examples.py in ipython

    Expected behavior Running line 35 causes an error. I ran on both linux and MacOS; in the first case I got an issue that said no NFFT is installed, in the second I got an error that says 'NFFT is not defined.'

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information): macOS Catalina linux centOS Fedora

    opened by bellab4710 4
  • Dockerfile fails to build

    Dockerfile fails to build

    Describe the bug Building the docker file fails with error

    To Reproduce Steps to reproduce the behavior:

    1. Go to project root
    2. Run docker build -t eht .
    3. Scroll down to step [5/5] RUN pip install -r requirements.txt && conda install -y -c conda-forge pynfft && echo "backend: Agg" >> /opt/conda/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc
    4. See error

    Expected behavior The docker build should finish successfully

    Screenshots

    Screen Shot 2020-12-10 at 3 26 22 PM

    Desktop (please complete the following information):

    • OS: MacOS Big Sur
    • Docker Engine Version v19.03.13
    opened by nitinkumartech 0
Releases(v1.2.5)
  • v1.2.5(Oct 19, 2022)

  • v1.2.4(May 5, 2022)

  • v1.2.3(Oct 29, 2021)

  • v1.2.2(Dec 10, 2020)

    Updates from May-December 2020 -- added correlated-in-time gains to synthetic data -- added (back) simultaneous Stokes I and polarimetric imaging -- standardized synthetic data options for movie and image -- fixed several bugs in multifrequency imaging -- fixed bugs in dynamical closures -- fixed bugs in load_uvfits for VLA data sets -- fixed bugs in saving uvfits

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(May 21, 2020)

  • v1.2(May 21, 2020)

    updates from late 2019/early 2020
    -- added multifrequency imaging -- added new movie utils for seamless imaging/plotting/ synthetic data generation -- better synthetic data generation, with finer control over gains & d-terms -- streamlined and linted code throughout. -- many bug fixes

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Apr 8, 2019)

  • v1.1.0(Mar 28, 2019)

    This version is available for reference on Zenodo at https://zenodo.org/record/2614016#.Yl8Xu7gpByo

    This version represents an incremental update to release v0.1.2. The original (early) eht-imaging code released with Chael et. al 2018 (10.5281/zenodo.1173414) was labeled as v1.0 before the software was tagged & released consistently. Therefore, we have jumped forward to v1.1.0 for this release. We apologize for the inconsistency!

    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Feb 2, 2019)

    Updates Through 02/01/2019 --New plotting options and color maps in a refactored im.display() function --New functions for determining overlapping sets of uv coverage between observations --New weighting options in im.fit_beam() --Bug fixes

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jan 8, 2019)

    Bug fixes and new functionality from Dec 2018 - Jan 2019 -- much more control over snrcut in the imager -- copy_closure_table option in caltables -- image.add_zblterm() for adding a large gaussian component offset, -- loading and saving dtype header files -- more options in image.display.

    Source code(tar.gz)
    Source code(zip)
Owner
Andrew Chael
Imaging and simulating black holes with the Event Horizon Telescope
Andrew Chael
Monitora la qualità della ricezione dei segnali radio nelle province siciliane.

FMap-server Monitora la qualità della ricezione dei segnali radio nelle province siciliane. Conversion data Frequency - StationName maps are stored in

Triglie 5 May 24, 2021
A PyTorch implementation of Radio Transformer Networks from the paper "An Introduction to Deep Learning for the Physical Layer".

An Introduction to Deep Learning for the Physical Layer An usable PyTorch implementation of the noisy autoencoder infrastructure in the paper "An Intr

Gram.AI 120 Nov 21, 2022
Builds a LoRa radio frequency fingerprint identification (RFFI) system based on deep learning techiniques

This project builds a LoRa radio frequency fingerprint identification (RFFI) system based on deep learning techiniques.

null 20 Dec 30, 2022
Useful materials and tutorials for 110-1 NTU DBME5028 (Application of Deep Learning in Medical Imaging)

Useful materials and tutorials for 110-1 NTU DBME5028 (Application of Deep Learning in Medical Imaging)

null 7 Jun 22, 2022
Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES)

Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES) This repo contains the full NITRATES pipeline for maximum likelihood-driven discov

null 13 Nov 8, 2022
MRQy is a quality assurance and checking tool for quantitative assessment of magnetic resonance imaging (MRI) data.

Front-end View Backend View Table of Contents Description Prerequisites Running Basic Information Measurements User Interface Feedback and usage Descr

Center for Computational Imaging and Personalized Diagnostics 58 Dec 2, 2022
Official Keras Implementation for UNet++ in IEEE Transactions on Medical Imaging and DLMIA 2018

UNet++: A Nested U-Net Architecture for Medical Image Segmentation UNet++ is a new general purpose image segmentation architecture for more accurate i

Zongwei Zhou 1.8k Jan 7, 2023
A package, and script, to perform imaging transcriptomics on a neuroimaging scan.

Imaging Transcriptomics Imaging transcriptomics is a methodology that allows to identify patterns of correlation between gene expression and some prop

Alessio Giacomel 10 Dec 27, 2022
The code release of paper 'Domain Generalization for Medical Imaging Classification with Linear-Dependency Regularization' NIPS 2020.

Domain Generalization for Medical Imaging Classification with Linear Dependency Regularization The code release of paper 'Domain Generalization for Me

Yufei Wang 56 Dec 28, 2022
A medical imaging framework for Pytorch

Welcome to MedicalTorch MedicalTorch is an open-source framework for PyTorch, implementing an extensive set of loaders, pre-processors and datasets fo

Christian S. Perone 799 Jan 3, 2023
Code associated with the paper "Deep Optics for Single-shot High-dynamic-range Imaging"

Deep Optics for Single-shot High-dynamic-range Imaging Code associated with the paper "Deep Optics for Single-shot High-dynamic-range Imaging" CVPR, 2

Stanford Computational Imaging Lab 40 Dec 12, 2022
Dense Deep Unfolding Network with 3D-CNN Prior for Snapshot Compressive Imaging, ICCV2021 [PyTorch Code]

Dense Deep Unfolding Network with 3D-CNN Prior for Snapshot Compressive Imaging, ICCV2021 [PyTorch Code]

Jian Zhang 20 Oct 24, 2022
[MICCAI'20] AlignShift: Bridging the Gap of Imaging Thickness in 3D Anisotropic Volumes

AlignShift NEW: Code for our new MICCAI'21 paper "Asymmetric 3D Context Fusion for Universal Lesion Detection" will also be pushed to this repository

Medical 3D Vision 42 Jan 6, 2023
Neural Nano-Optics for High-quality Thin Lens Imaging

Neural Nano-Optics for High-quality Thin Lens Imaging Project Page | Paper | Data Ethan Tseng, Shane Colburn, James Whitehead, Luocheng Huang, Seung-H

Ethan Tseng 39 Dec 5, 2022
Official implementation of NLOS-OT: Passive Non-Line-of-Sight Imaging Using Optimal Transport (IEEE TIP, accepted)

NLOS-OT Official implementation of NLOS-OT: Passive Non-Line-of-Sight Imaging Using Optimal Transport (IEEE TIP, accepted) Description In this reposit

Ruixu Geng(耿瑞旭) 16 Dec 16, 2022
Official implementation of the method ContIG, for self-supervised learning from medical imaging with genomics

ContIG: Self-supervised Multimodal Contrastive Learning for Medical Imaging with Genetics This is the code implementation of the paper "ContIG: Self-s

Digital Health & Machine Learning 22 Dec 13, 2022
PyTorch implementation of Deep HDR Imaging via A Non-Local Network (TIP 2020).

NHDRRNet-PyTorch This is the PyTorch implementation of Deep HDR Imaging via A Non-Local Network (TIP 2020). 0. Differences between Original Paper and

Yutong Zhang 1 Mar 1, 2022
Equivariant Imaging: Learning Beyond the Range Space

[Project] Equivariant Imaging: Learning Beyond the Range Space Project about the

Georges Le Bellier 3 Feb 6, 2022
Pytorch implementation of various High Dynamic Range (HDR) Imaging algorithms

Deep High Dynamic Range Imaging Benchmark This repository is the pytorch impleme

Tianhong Dai 5 Nov 16, 2022