Skip to content

Instantly share code, notes, and snippets.

Avatar

Thomas Aarholt thomasaarholt

  • University of Oslo
  • Oslo, Norway
View GitHub Profile
@thomasaarholt
thomasaarholt / gms_load_hyperspy.py
Last active Sep 3, 2020
Python script to load any format supported by hyperspy directly into GMS 3.4+
View gms_load_hyperspy.py
'''
Python script to load any format supported by hyperspy directly into GMS
Must be copied and pasted into Gatan DigitalMicrograph (aka Gatan Microscopy Suite) version 3.4+
Call by `load_img(filepath)` at the bottom of the script. Can not be called outside of GMS.
Does not automatically convert the data type to EELS or EDS
Written by Thomas Aarholt, see https://gist.github.com/thomasaarholt/fccf06d56ff84cf76345b44dae30871e for newer versions
Feedback and forks are very welcome.
MUST: First import of hyperspy (or scipy) must NOT be run with "Execute on background thread" checked. One
can then swap to background thread and rerun.
v. 0.3: Added delete statements to ensure python objects don't stay in memory.
@thomasaarholt
thomasaarholt / .profile
Created Feb 27, 2019
.profile used on Machine Learning Cluster
View .profile
GNU nano 2.5.3 File: /shared/users/thomasaar/.profile
PS1='$(pwd): '
echo 'Hello Thomas - edit PATH using "profile"'
echo "YOU ARE NOT IN HOME - YOU ARE ON SHARED"
# This is a comment
echo 'Enabling environment for pyprismatic'
export CPLUS_INCLUDE_PATH=/usr/local/cuda-10.0/include:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=$HOME/fftw_gcc5_build/lib64:/usr/local/cuda-10.0/lib64:$HOME/prismatic_gcc5/lib:$LD_LIBRARY_PATH
export LIBRARY_PATH=$HOME/fftw_gcc5_build/lib64:/usr/local/cuda-10.0/lib64:$HOME/prismatic_gcc5/lib:$LIBRARY_PATH
@thomasaarholt
thomasaarholt / .inputrc
Created Feb 27, 2019
Absolutely necessary .inputrc hotkeys for navigating in bash
View .inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
@thomasaarholt
thomasaarholt / colorbar.py
Last active Dec 3, 2019
Add colorbar next to image
View colorbar.py
from mpl_toolkits.axes_grid1 import make_axes_locatable
def colorbar(mappable):
"mappable is img = plt.imshow()"
ax = mappable.axes
fig = ax.figure
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
cax.aname = 'colorbar'
return fig.colorbar(mappable, cax=cax)
@thomasaarholt
thomasaarholt / Remote_Notebook.md
Last active Mar 21, 2019
Remote Jupyter Notebook through ssh tunnel
View Remote_Notebook.md

Using Jupyter notebook remotely via a ssh tunnel.

Especially good for running on headless devices, such as supercomputers or clusters.

Remotely:

# remote_port should be value between 8888 and 9000
jupyter notebook --no-browser --port=remote_port

Locally, new terminal window

@thomasaarholt
thomasaarholt / savefig_no_whitespace.py
Last active Mar 20, 2019
Save matplotlib figures with no whitespace
View savefig_no_whitespace.py
import matplotlib.pyplot as plt
def save(filepath="image.png", fig=None):
'''Save the current image with no whitespace
Example filepath: "myfig.png" or r"C:\myfig.pdf"
Based on answers from https://stackoverflow.com/questions/11837979/
'''
import matplotlib.pyplot as plt
if not fig:
fig = plt.gcf()
@bencholmes
bencholmes / forceFFTSymmetry.m
Created Aug 30, 2018
A MATLAB function to force symmetry on an FFT, thus producing a real signal after an IFFT.
View forceFFTSymmetry.m
function X = forceFFTSymmetry(X)
% forceFFTSymmetry A function to force conjugate symmetry on an FFT such that when an
% IFFT is performed the result is a real signal.
% The function has been written to replace MATLAB's ifft(X,'symmetric'), as this function
% is not compatible with MATLAB Coder.
% Licensed under Creative Commons Zero (CC0) so use freely.
XStartFlipped = fliplr(X(2:floor(end/2)));
@wassname
wassname / augumented_hdf5_matrix.py
Last active Apr 7, 2020
How to do data augmentation on a keras HDF5Matrix
View augumented_hdf5_matrix.py
"""Another way, note this one will load the whole array into memory ."""
from keras.preprocessing.image import ImageDataGenerator
import h5py
from keras.utils.io_utils import HDF5Matrix
seed=0
batch_size=32
# we create two instances with the same arguments
data_gen_args = dict(
rotation_range=90.,
@andrewjesaitis
andrewjesaitis / gist:7778867
Created Dec 3, 2013
Just an example of dividing a continuous matplotlib colormap into a distinct array of colors
View gist:7778867
import matplotlib as mpl
num_colors = len(values)
cm = mpl.cm.get_cmap(name='YlGnBu_r')
currentColors = [cm(1.*i/num_colors) for i in range(num_colors)]
@piscisaureus
piscisaureus / pr.md
Created Aug 13, 2012
Checkout github pull requests locally
View pr.md

Locate the section for your github remote in the .git/config file. It looks like this:

[remote "origin"]
	fetch = +refs/heads/*:refs/remotes/origin/*
	url = git@github.com:joyent/node.git

Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:

You can’t perform that action at this time.