Import the LOEB module and the UpdatedPixPlot program

In [1]:
%%capture
!pip install JATA
from LOEB import loeb

What is the loeb portrait database

The loeb Jewish Portrait Database (http://loebjewishportraits.com/) is an online archive that contains oil portraits, photos and silhouettes collected from various families throughout the americas. John L. Loeb, Jr. hopes this project can “illuminate early American Jewish history by placing every known portrait of an early American Jew in an online database for everyone to see”. You might have the time to look through all 400 records and save all the images while writing down all the information about them but in this tutorial we will build a web scraper in python to do that for us.

Like the CJH scraper, this program looks through the archives of the selected image type. The input should be one of the following : 'paintings', 'silhouettes', 'photographs', or 'all'

Scraping Meta Data and Download Locations for Selected Image Type

In [2]:
paintings = loeb('photographs')
Collected Data for  1 out of 41 images
Collected Data for  2 out of 41 images
Collected Data for  3 out of 41 images
Collected Data for  4 out of 41 images
Collected Data for  5 out of 41 images
Collected Data for  6 out of 41 images
Collected Data for  7 out of 41 images
Collected Data for  8 out of 41 images
Collected Data for  9 out of 41 images
Collected Data for  10 out of 41 images
Collected Data for  11 out of 41 images
Collected Data for  12 out of 41 images
Collected Data for  13 out of 41 images
Collected Data for  14 out of 41 images
Collected Data for  15 out of 41 images
Collected Data for  16 out of 41 images
Collected Data for  17 out of 41 images
Collected Data for  18 out of 41 images
Collected Data for  19 out of 41 images
Collected Data for  20 out of 41 images
Collected Data for  21 out of 41 images
Collected Data for  22 out of 41 images
Collected Data for  23 out of 41 images
Collected Data for  24 out of 41 images
Collected Data for  25 out of 41 images
Collected Data for  26 out of 41 images
Collected Data for  27 out of 41 images
Collected Data for  28 out of 41 images
Collected Data for  29 out of 41 images
Collected Data for  30 out of 41 images
Collected Data for  31 out of 41 images
Collected Data for  32 out of 41 images
Collected Data for  33 out of 41 images
Collected Data for  34 out of 41 images
Collected Data for  35 out of 41 images
Collected Data for  36 out of 41 images
Collected Data for  37 out of 41 images
Collected Data for  38 out of 41 images
Collected Data for  39 out of 41 images
Collected Data for  40 out of 41 images
Collected Data for  41 out of 41 images

Building a MetaData Dataset for the Paintings

In [3]:
meta_data = paintings.get_meta_data()

Output For Painting MetaData

In [4]:
meta_data
Out[4]:
index Name Life Span Artist Photograph Date Medium Dimensions Repository Bio_Plain Bio_Links
0 Value Abraham Rodriguez Brandon Moses 1820-1882 Rufus Anson Gallery 1850-1865 Daguerreotype 3 5/8 x 3 1/8 in. American Jewish Historical Society Abraham was one the fourth of nine children b... Abraham was one the fourth of nine children b...
2 Value Abraham Rodriguez Brandon Moses 1820-1882 Matthew B. Brady Gallery 1853 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society Abraham was one the fourth of nine children b... Abraham was one the fourth of nine children b...
5 Value Benjamin Frederick Moses 1827-1870 Unknown 1850-1865 Daguerreotype 4 5/8 x 3 11/16 in. American Jewish Historical Society
9 Value Blanche Moses 1859-1946 Rufus Anson Gallery 1860 Daguerreotype 3 5/8 x 3 3/16 in. American Jewish Historical Society
14 Value Gershom Arnold Moses 1861-? Unknown 1862 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
20 Value Isaac Jr. & Benjamin Frederick Moses 1819-1889; 1827-1870 Unknown 1850-1865 Daguerreotype 4 3/4 x 4 3/8 in. American Jewish Historical Society
27 Value Isaac Moses, Jr. 1819-1889 Sabatier-Blot 1845-1865 Daguerreotype 5 1/2 x 4 1/2 in. American Jewish Historical Society Named for his grandfather, Isaac Moses, Jr. w... Named for his grandfather, Isaac Moses, Jr. w...
35 Value Israel Moses 1821-1870 Unknown 1845-1866 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
44 Value Israel Moses 1821-1870 Unknown 1845-1867 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society
54 Value Joseph Washington Moses 1823-1865 Unknown 1850-1865 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
77 Value Joseph Washington Moses 1823-1865 Unknown 1850-1865 Carte de viste 3 11/16 x 3 1/4 in. American Jewish Historical Society
90 Value Lionel Moses 1825-1895 Matthew B. Brady Gallery 1844-1853 Daguerreotype 4 3/4 in. x 3 3/4 in. American Jewish Historical Society Lionel Moses was born in New York, one of Joh... Lionel Moses was born in New York, one of Joh...
104 Value Lionel Moses 1825-1895 Rufus Anson Gallery 1850-1865 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
119 Value Sarah Edith Moses 1858-1909 Rufus Anson Gallery 1860-1861 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
135 Value Sarah Edith Moses, & nurse Biddy 1858-1909 Rufus Anson Gallery 1859 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
152 Value Selina Seixas Moses 1838-1917 Unknown 1857 Hand-tinted daguerreotype 3 3/4 x 3 1/2 in. American Jewish Historical Society
170 Value Selina Seixas Moses 1838-1917 Unknown 1860 Daguerreotype 3 11/16 x 3 3/8 in. American Jewish Historical Society
189 Value Selina Seixas Moses 1838-1917 Unknown 1857 Daguerreotype 4 3/4 in. x 3 3/4 in. American Jewish Historical Society
209 Value Selina Seixas Moses 1838-1917 Unknown 1860 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society
230 Value Selina Seixas Moses 1838-1917 Rufus Anson Gallery 1859 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society
252 Value Rebecca Esther Jackson Noah 1810-1866 Rufus Anson Gallery 1850-1866 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society “I intend to get married when I have leisure,... “I intend to get married when I have leisure,...
275 Value Aaron N. Phillips 1799-1871 Unknown 1840-1865 Daguerreotype 3 3/4 x 3 1/2 in. American Jewish Historical Society The second of Naphtali and Rachel Seixas Phil... The second of Naphtali and Rachel Seixas Phil...
299 Value Isaac Phillips 1812-1889 Unknown 1850-1865 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society Isaac was the fourth of eleven children born ... Isaac was the fourth of eleven children born ...
324 Value Jonas Benjamin Phillips 1805-1867 P. Haas 1853 Daguerreotype 4 3/4 in. x 3 3/4 in. American Jewish Historical Society Jonas Benjamin Phillips was the eldest son of... Jonas Benjamin Phillips was the eldest son of...
350 Value Sophia Phillips 1810-1855 Unknown 1840-1855 Daguerreotype 3 5/8 x 3 1/8 in. American Jewish Historical Society Little is known of Sophia Phillip’s backgroun... Little is known of Sophia Phillip’s backgroun...
377 Value Caroline Seixas 1860-? Unknown 1860-1865 Daguerreotype 4 3/4 in. x 3 3/4 in. American Jewish Historical Society
405 Value Gerhsom Arnold Sexias 1835-1915 Rufus Anson Gallery 1860 Daguerreotype 4 3/4 in. x 3 3/4 in. American Jewish Historical Society
434 Value Henrietta Raphael Seixas 1804-1887 Unknown 1845-1865 Hand-tinted daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society
464 Value Selina Seixas 1838-1917 Unknown ca. 1851 Daguerreotype 3 3/4 x 3 3/8 in. American Jewish Historical Society
495 Value Selina Seixas 1838-1917 Unknown 1841 Daguerreotype 3 3/4 x 3 1/4 in. American Jewish Historical Society
527 Value Selina & Seraphine Seixas 1838-1917; 1840-? Unknown 1845 Daguerreotype 3 x 2 1/2 in. American Jewish Historical Society
560 Value Selina Seixas & unidentified infant 1838-1917 Unknown 1854 Daguerreotype 4 5/8 x 3 5/8 in. American Jewish Historical Society
594 Value Judah Touro 1775-1854 Unknown 1854 Daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society More than any other figure of the period, Jud... More than any other figure of the period, Jud...
629 Value Rosalie Hendricks Allen 1840-1923 Rufus Anson Gallery 1860 NaN 3 5/8 x 3 1/4 in. American Jewish Historical Society Rosalie was the daughter of Harriet Tobias an... Rosalie was the daughter of Harriet Tobias an...
665 Value Miriam Peixotto Davis 1842-1923 Rufus Anson Gallery 1860 Daguerreotype 3 3/8 x 2 3/4 in. American Jewish Historical Society Miriam Maduro Peixotto Davis was the youngest... Miriam Maduro Peixotto Davis was the youngest...
702 Value Frances Allen Mitchell Levy 1823-1893 Unknown 1850-1865 NaN 4 3/4 in. x 3 3/4 in. American Jewish Historical Society Abraham Mitchell immigrated to the United Sta... Abraham Mitchell immigrated to the United Sta...
740 Value Jefferson Monroe and Isabella Levy 1852-1924; 1849-1925 Unknown 1859 Daguerreotype 4 11/16 x 3 11/16 in. American Jewish Historical Society Depicted here are the two oldest children of ... Depicted here are the two oldest children of ...
779 Value Jonas Phillips Levy 1807-1883 Unknown 1861 Hand-tinted daguerreotype 3 5/8 x 3 1/4 in. American Jewish Historical Society
819 Value Jonas Phillips Levy 1807-1883 Unknown 1861 Hand-tinted daguerreotype 4 11/16 x 3 3/4 in. American Jewish Historical Society
860 Value Rachel Phillips Marchant 1836-1888 Rufus Anson Gallery 1855 Daguerreotype 3 11/16 x 3 1/4 in. American Jewish Historical Society Rachel Phillips Marchant was the eldest child... Rachel Phillips Marchant was the eldest child...

Downloading these images to our local computer.

In [5]:
paintings.download_images()
Saved Abraham Rodriguez Brandon Moses.jpg to current directory
Saved Abraham Rodriguez Brandon Moses.jpg to current directory
Saved Benjamin Frederick Moses.jpg to current directory
Saved Blanche Moses.jpg to current directory
Saved Gershom Arnold Moses.jpg to current directory
Saved Isaac Jr. & Benjamin Frederick Moses.jpg to current directory
Saved Isaac Moses,  Jr..jpg to current directory
Saved Israel Moses.jpg to current directory
Saved Israel Moses.jpg to current directory
Saved Joseph Washington Moses.jpg to current directory
Saved Joseph Washington Moses.jpg to current directory
Saved Joseph Washington Moses.jpg to current directory
Saved Lionel Moses.jpg to current directory
Saved Lionel Moses.jpg to current directory
Saved Sarah Edith Moses.jpg to current directory
Saved Sarah Edith Moses, & nurse Biddy.jpg to current directory
Saved Selina Seixas Moses.jpg to current directory
Saved Selina Seixas Moses.jpg to current directory
Saved Selina Seixas Moses.jpg to current directory
Saved Selina Seixas Moses.jpg to current directory
Saved Selina Seixas Moses.jpg to current directory
Saved Rebecca Esther Jackson Noah.jpg to current directory
Saved Aaron N. Phillips.jpg to current directory
Saved Isaac Phillips.jpg to current directory
Saved Jonas Benjamin Phillips.jpg to current directory
Saved Sophia Phillips.jpg to current directory
Saved Caroline Seixas.jpg to current directory
Saved Gerhsom Arnold Sexias.jpg to current directory
Saved Henrietta Raphael Seixas.jpg to current directory
Saved Selina Seixas.jpg to current directory
Saved Selina Seixas.jpg to current directory
Saved Selina & Seraphine Seixas.jpg to current directory
Saved Selina Seixas & unidentified infant.jpg to current directory
Saved Judah Touro.jpg to current directory
Saved Rosalie Hendricks Allen.jpg to current directory
Saved Miriam Peixotto Davis.jpg to current directory
Saved Frances Allen Mitchell Levy.jpg to current directory
Saved Jefferson Monroe and Isabella Levy.jpg to current directory
Saved Jonas Phillips Levy.jpg to current directory
Saved Jonas Phillips Levy.jpg to current directory
Saved Rachel Phillips Marchant.jpg to current directory

Detecting Objects in Groups of Images

We will use AI to vectorize and distingush similaritys and differinces between large groups of images. The pixplot included in JATA is a fork of an old YALE Digital Humanities Lab project called pix-plot. The code has been optimized for use in google colab and notebook enviorments. There where also a number of dependancy issues and package handling that was added to reduce end-user complexity. For more info on flags and options you can use to spice up your exhibit check out the official pixplot github: https://github.com/YaleDHLab/pix-plot

Feel free to drop more images into the working directory or use your own custom set of images by restarting the interactivity and skipping over the LOAB portion.

Pixplot can handle tens of thousands of images so you are encouraged to go crazy!

In [6]:
!pixplot --images "*.jpg"
2020-08-30 17:45:38.074073: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcudart.so.10.1
Keras Tensorflor Backend Failled With Error:  No module named 'keras.backend.tensorflow_backend'; 'keras.backend' is not a package
Using most recent tensorflow keras backend...
Success! :)
Collecting pointgrid
  Downloading https://files.pythonhosted.org/packages/93/54/a4ade9bd2fe518026e67b0ad4dbea02930fa6fbfde227c8e726f7d69dc24/pointgrid-0.0.3.tar.gz
Requirement already satisfied: numpy>=1.14.0 in /usr/local/lib/python3.6/dist-packages (from pointgrid) (1.18.5)
Requirement already satisfied: pandas>=0.25.3 in /usr/local/lib/python3.6/dist-packages (from pointgrid) (1.0.5)
Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.6/dist-packages (from pointgrid) (1.4.1)
Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.25.3->pointgrid) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.25.3->pointgrid) (2018.9)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.6.1->pandas>=0.25.3->pointgrid) (1.15.0)
Building wheels for collected packages: pointgrid
  Building wheel for pointgrid (setup.py) ... done
  Created wheel for pointgrid: filename=pointgrid-0.0.3-cp36-none-any.whl size=3693 sha256=2278f1d70f7d54e4b5e5ba183c7241664d474bfef31be0b3de1f0cac3a32a414
  Stored in directory: /root/.cache/pip/wheels/07/d6/27/1393a15018bb99db6974d44cf8371732058cca599ad0f1a0a9
Successfully built pointgrid
Installing collected packages: pointgrid
Successfully installed pointgrid-0.0.3
Collecting iiif_downloader
  Downloading https://files.pythonhosted.org/packages/16/cc/3e7b68ac8240df87fe0ab4ab673357de636d222cffd2e0dd0392c04bade1/iiif_downloader-0.0.8.tar.gz
Requirement already satisfied: requests>=2.22.0 in /usr/local/lib/python3.6/dist-packages (from iiif_downloader) (2.23.0)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests>=2.22.0->iiif_downloader) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests>=2.22.0->iiif_downloader) (2020.6.20)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests>=2.22.0->iiif_downloader) (1.24.3)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests>=2.22.0->iiif_downloader) (2.10)
Building wheels for collected packages: iiif-downloader
  Building wheel for iiif-downloader (setup.py) ... done
  Created wheel for iiif-downloader: filename=iiif_downloader-0.0.8-cp36-none-any.whl size=2733 sha256=e2d7797252a22aed494c67eb8b49cff3c6a7559ede4a6f48d416a3c5824c9618
  Stored in directory: /root/.cache/pip/wheels/99/13/64/76cd63686059414d68ac9b0f164e815c3b607072a407592e2c
Successfully built iiif-downloader
Installing collected packages: iiif-downloader
Successfully installed iiif-downloader-0.0.8
Collecting rasterfairy
  Downloading https://files.pythonhosted.org/packages/e3/ca/d1676058069ac237fa8de6e39f7edd9a24f0fe142f2d0009f42f8cdf6e9e/rasterfairy-1.0.6.tar.gz
Requirement already satisfied: numpy>=1.8.0 in /usr/local/lib/python3.6/dist-packages (from rasterfairy) (1.18.5)
Requirement already satisfied: scipy>=0.13.0 in /usr/local/lib/python3.6/dist-packages (from rasterfairy) (1.4.1)
Requirement already satisfied: moviepy>=0.2.3.5 in /usr/local/lib/python3.6/dist-packages (from rasterfairy) (0.2.3.5)
Requirement already satisfied: decorator<5.0,>=4.0.2 in /usr/local/lib/python3.6/dist-packages (from moviepy>=0.2.3.5->rasterfairy) (4.4.2)
Requirement already satisfied: imageio<3.0,>=2.1.2 in /usr/local/lib/python3.6/dist-packages (from moviepy>=0.2.3.5->rasterfairy) (2.4.1)
Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.6/dist-packages (from moviepy>=0.2.3.5->rasterfairy) (4.41.1)
Requirement already satisfied: pillow in /usr/local/lib/python3.6/dist-packages (from imageio<3.0,>=2.1.2->moviepy>=0.2.3.5->rasterfairy) (7.0.0)
Building wheels for collected packages: rasterfairy
  Building wheel for rasterfairy (setup.py) ... done
  Created wheel for rasterfairy: filename=rasterfairy-1.0.6-cp36-none-any.whl size=29553 sha256=fb143dd2ea58d695e0c4b127752ada385f5709557095fbafad88ff23ebf0c566
  Stored in directory: /root/.cache/pip/wheels/0c/f9/82/556740c5d8bea017ac9f2aa74d97fa0319a301371e23b06777
Successfully built rasterfairy
Installing collected packages: rasterfairy
Successfully installed rasterfairy-1.0.6
Collecting hdbscan
  Downloading https://files.pythonhosted.org/packages/22/2f/2423d844072f007a74214c1adc46260e45f034bb1679ccadfbb8a601f647/hdbscan-0.8.26.tar.gz (4.7MB)
     |████████████████████████████████| 4.7MB 2.2MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: scipy>=0.9 in /usr/local/lib/python3.6/dist-packages (from hdbscan) (1.4.1)
Requirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from hdbscan) (0.16.0)
Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.6/dist-packages (from hdbscan) (1.18.5)
Requirement already satisfied: cython>=0.27 in /usr/local/lib/python3.6/dist-packages (from hdbscan) (0.29.21)
Requirement already satisfied: scikit-learn>=0.17 in /usr/local/lib/python3.6/dist-packages (from hdbscan) (0.22.2.post1)
Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from hdbscan) (1.15.0)
Building wheels for collected packages: hdbscan
  Building wheel for hdbscan (PEP 517) ... done
  Created wheel for hdbscan: filename=hdbscan-0.8.26-cp36-cp36m-linux_x86_64.whl size=2305932 sha256=973401d9524dbb294e19ba533dfcf7ae808fb5fa0c874e05c0a8209a856cf656
  Stored in directory: /root/.cache/pip/wheels/82/38/41/372f034d8abd271ef7787a681e0a47fc05d472683a7eb088ed
Successfully built hdbscan
Installing collected packages: hdbscan
Successfully installed hdbscan-0.8.26
Collecting lap
  Downloading https://files.pythonhosted.org/packages/bf/64/d9fb6a75b15e783952b2fec6970f033462e67db32dc43dfbb404c14e91c2/lap-0.4.0.tar.gz (1.5MB)
     |████████████████████████████████| 1.5MB 2.7MB/s 
Building wheels for collected packages: lap
  Building wheel for lap (setup.py) ... done
  Created wheel for lap: filename=lap-0.4.0-cp36-cp36m-linux_x86_64.whl size=1588988 sha256=1b2d7f7c684b08ffa0d6c8861b791a4715a282d7864cacfb6087ab0941a76055
  Stored in directory: /root/.cache/pip/wheels/da/3e/af/eddcd6ffaa27df8d0ddac573758f8953c4e57c64c4c8c8b7d0
Successfully built lap
Installing collected packages: lap
Successfully installed lap-0.4.0
2020-08-30 17:46:51.368987: I tensorflow/core/platform/profile_utils/cpu_utils.cc:104] CPU Frequency: 2200150000 Hz
2020-08-30 17:46:51.369231: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x660c140 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-08-30 17:46:51.369276: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-08-30 17:46:51.430448: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1
2020-08-30 17:46:51.477223: E tensorflow/stream_executor/cuda/cuda_driver.cc:314] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected
2020-08-30 17:46:51.477291: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (f299fb4712f7): /proc/driver/nvidia/version does not exist
2020-08-30 17:46:51.477674: I tensorflow/core/common_runtime/direct_session.cc:360] Device mapping:
/job:localhost/replica:0/task:0/device:XLA_CPU:0 -> device: XLA_CPU device

 * creating atlas files
 * preparing to vectorize 30 images
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/inception_v3/inception_v3_weights_tf_dim_ordering_tf_kernels.h5
96116736/96112376 [==============================] - 4s 0us/step
 * creating image array
 * vectorized 1/30 images
 * vectorized 2/30 images
 * vectorized 3/30 images
 * vectorized 4/30 images
 * vectorized 5/30 images
 * vectorized 6/30 images
 * vectorized 7/30 images
 * vectorized 8/30 images
 * vectorized 9/30 images
 * vectorized 10/30 images
 * vectorized 11/30 images
 * vectorized 12/30 images
 * vectorized 13/30 images
 * vectorized 14/30 images
 * vectorized 15/30 images
 * vectorized 16/30 images
 * vectorized 17/30 images
 * vectorized 18/30 images
 * vectorized 19/30 images
 * vectorized 20/30 images
 * vectorized 21/30 images
 * vectorized 22/30 images
 * vectorized 23/30 images
 * vectorized 24/30 images
 * vectorized 25/30 images
 * vectorized 26/30 images
 * vectorized 27/30 images
 * vectorized 28/30 images
 * vectorized 29/30 images
 * vectorized 30/30 images
 * creating UMAP layout
 * creating linear assignment layout
 * creating grid layout
 * creating umap pointgrid
 * creating mesh with size 35 35
 * filling mesh
 * HDBSCAN clustering data with 2 cores...
 * found 0 hotspots
Output Saving to: output/data/thumbs/Aaron N. Phillips.jpg
Output Saving to: output/data/thumbs/Abraham Rodriguez Brandon Moses.jpg
Output Saving to: output/data/thumbs/Benjamin Frederick Moses.jpg
Output Saving to: output/data/thumbs/Blanche Moses.jpg
Output Saving to: output/data/thumbs/Caroline Seixas.jpg
Output Saving to: output/data/thumbs/Frances Allen Mitchell Levy.jpg
Output Saving to: output/data/thumbs/Gerhsom Arnold Sexias.jpg
Output Saving to: output/data/thumbs/Gershom Arnold Moses.jpg
Output Saving to: output/data/thumbs/Henrietta Raphael Seixas.jpg
Output Saving to: output/data/thumbs/Isaac Jr. &amp; Benjamin Frederick Moses.jpg
Output Saving to: output/data/thumbs/Isaac Moses,  Jr..jpg
Output Saving to: output/data/thumbs/Isaac Phillips.jpg
Output Saving to: output/data/thumbs/Israel Moses.jpg
Output Saving to: output/data/thumbs/Jefferson Monroe and Isabella Levy.jpg
Output Saving to: output/data/thumbs/Jonas Benjamin Phillips.jpg
Output Saving to: output/data/thumbs/Jonas Phillips Levy.jpg
Output Saving to: output/data/thumbs/Joseph Washington Moses.jpg
Output Saving to: output/data/thumbs/Judah Touro.jpg
Output Saving to: output/data/thumbs/Lionel Moses.jpg
Output Saving to: output/data/thumbs/Miriam Peixotto Davis.jpg
Output Saving to: output/data/thumbs/Rachel Phillips Marchant.jpg
Output Saving to: output/data/thumbs/Rebecca Esther Jackson Noah.jpg
Output Saving to: output/data/thumbs/Rosalie Hendricks Allen.jpg
Output Saving to: output/data/thumbs/Sarah Edith Moses, &amp; nurse Biddy.jpg
Output Saving to: output/data/thumbs/Sarah Edith Moses.jpg
Output Saving to: output/data/thumbs/Selina &amp; Seraphine Seixas.jpg
Output Saving to: output/data/thumbs/Selina Seixas &amp; unidentified infant.jpg
Output Saving to: output/data/thumbs/Selina Seixas Moses.jpg
Output Saving to: output/data/thumbs/Selina Seixas.jpg
Output Saving to: output/data/thumbs/Sophia Phillips.jpg
 * done!

Bask in the glory of your procedurally generated Digital Exhibit!

To build your exhibit, all you need to do is run the following code, which will download a zip file of our generated output. Then, unzip the output file, navigate to it in your terminal application (Open a terminal window, type cd, and drag the file into the window, this will populate the path) and press enter. Use the command pwd to make sure you are in the output folder. It should look something like this depending on where you put your folder: /home/USERNAME/Downloads/output

In [7]:
!zip -r /content/output.zip /content/output

from google.colab import files
files.download("/content/output.zip")
  adding: content/output/ (stored 0%)
  adding: content/output/favicon.ico (stored 0%)
  adding: content/output/assets/ (stored 0%)
  adding: content/output/assets/vendor/ (stored 0%)
  adding: content/output/assets/vendor/dist/ (stored 0%)
  adding: content/output/assets/vendor/dist/no-ui-slider.min.js (deflated 65%)
  adding: content/output/assets/vendor/dist/tweenlite.min.js (deflated 65%)
  adding: content/output/assets/vendor/dist/stats.min.js (deflated 48%)
  adding: content/output/assets/vendor/dist/lodash.min.js (deflated 65%)
  adding: content/output/assets/vendor/dist/papaparse.min.js (deflated 64%)
  adding: content/output/assets/vendor/dist/gunzip.min.js (deflated 56%)
  adding: content/output/assets/vendor/dist/trackball-controls.min.js (deflated 72%)
  adding: content/output/assets/vendor/dist/three.min.js (deflated 75%)
  adding: content/output/assets/vendor/dist/jszip.min.js (deflated 71%)
  adding: content/output/assets/vendor/src/ (stored 0%)
  adding: content/output/assets/vendor/src/tweenlite.js (deflated 76%)
  adding: content/output/assets/vendor/src/stats.js (deflated 63%)
  adding: content/output/assets/vendor/src/trackball-controls.js (deflated 78%)
  adding: content/output/assets/vendor/src/jszip.js (deflated 76%)
  adding: content/output/assets/css/ (stored 0%)
  adding: content/output/assets/css/no-ui-slider.css (deflated 71%)
  adding: content/output/assets/css/style.css (deflated 79%)
  adding: content/output/assets/js/ (stored 0%)
  adding: content/output/assets/js/object-assign-polyfill.js (deflated 53%)
  adding: content/output/assets/js/tsne.js (deflated 73%)
  adding: content/output/assets/images/ (stored 0%)
  adding: content/output/assets/images/preview.png (stored 0%)
  adding: content/output/assets/images/heightmap.jpg (stored 0%)
  adding: content/output/assets/images/dhlab-logo.svg (deflated 57%)
  adding: content/output/assets/images/date-layout.png (deflated 5%)
  adding: content/output/assets/images/icons/ (stored 0%)
  adding: content/output/assets/images/icons/eye-icon.png (deflated 10%)
  adding: content/output/assets/images/icons/pan.svg (deflated 53%)
  adding: content/output/assets/images/icons/search-icon.svg (deflated 22%)
  adding: content/output/assets/images/icons/save.svg (deflated 44%)
  adding: content/output/assets/images/icons/date-layout.svg (deflated 66%)
  adding: content/output/assets/images/icons/select.svg (deflated 46%)
  adding: content/output/assets/images/icons/lasso.png (stored 0%)
  adding: content/output/assets/images/icons/grid-layout.svg (deflated 79%)
  adding: content/output/assets/images/icons/chevron.png (deflated 24%)
  adding: content/output/assets/images/icons/caret-icon.png (deflated 49%)
  adding: content/output/assets/images/icons/az-layout.svg (deflated 69%)
  adding: content/output/assets/images/icons/refresh.svg (deflated 40%)
  adding: content/output/assets/images/icons/download-icon.png (deflated 31%)
  adding: content/output/assets/images/icons/scatter-layout.svg (deflated 71%)
  adding: content/output/assets/images/icons/categorical-layout.svg (deflated 57%)
  adding: content/output/data/ (stored 0%)
  adding: content/output/data/manifest.json (deflated 72%)
  adding: content/output/data/thumbs/ (stored 0%)
  adding: content/output/data/thumbs/Abraham Rodriguez Brandon Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Gershom Arnold Moses.jpg (deflated 3%)
  adding: content/output/data/thumbs/Isaac Jr. &amp; Benjamin Frederick Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Miriam Peixotto Davis.jpg (deflated 3%)
  adding: content/output/data/thumbs/Jonas Phillips Levy.jpg (deflated 3%)
  adding: content/output/data/thumbs/Henrietta Raphael Seixas.jpg (deflated 4%)
  adding: content/output/data/thumbs/Isaac Moses,  Jr..jpg (deflated 5%)
  adding: content/output/data/thumbs/Selina &amp; Seraphine Seixas.jpg (deflated 3%)
  adding: content/output/data/thumbs/Selina Seixas Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Sarah Edith Moses, &amp; nurse Biddy.jpg (deflated 3%)
  adding: content/output/data/thumbs/Sophia Phillips.jpg (deflated 3%)
  adding: content/output/data/thumbs/Sarah Edith Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Frances Allen Mitchell Levy.jpg (deflated 3%)
  adding: content/output/data/thumbs/Benjamin Frederick Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Rosalie Hendricks Allen.jpg (deflated 3%)
  adding: content/output/data/thumbs/Rebecca Esther Jackson Noah.jpg (deflated 3%)
  adding: content/output/data/thumbs/Israel Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Blanche Moses.jpg (deflated 3%)
  adding: content/output/data/thumbs/Joseph Washington Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Rachel Phillips Marchant.jpg (deflated 3%)
  adding: content/output/data/thumbs/Isaac Phillips.jpg (deflated 3%)
  adding: content/output/data/thumbs/Lionel Moses.jpg (deflated 4%)
  adding: content/output/data/thumbs/Aaron N. Phillips.jpg (deflated 4%)
  adding: content/output/data/thumbs/Jefferson Monroe and Isabella Levy.jpg (deflated 3%)
  adding: content/output/data/thumbs/Judah Touro.jpg (deflated 3%)
  adding: content/output/data/thumbs/Selina Seixas &amp; unidentified infant.jpg (deflated 3%)
  adding: content/output/data/thumbs/Jonas Benjamin Phillips.jpg (deflated 4%)
  adding: content/output/data/thumbs/Gerhsom Arnold Sexias.jpg (deflated 3%)
  adding: content/output/data/thumbs/Caroline Seixas.jpg (deflated 3%)
  adding: content/output/data/thumbs/Selina Seixas.jpg (deflated 4%)
  adding: content/output/data/manifests/ (stored 0%)
  adding: content/output/data/manifests/manifest-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 72%)
  adding: content/output/data/hotspots/ (stored 0%)
  adding: content/output/data/hotspots/hotspot-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (stored 0%)
  adding: content/output/data/layouts/ (stored 0%)
  adding: content/output/data/layouts/umap-jittered-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 83%)
  adding: content/output/data/layouts/umap-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 79%)
  adding: content/output/data/layouts/grid-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 91%)
  adding: content/output/data/layouts/assignment-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 89%)
  adding: content/output/data/heightmaps/ (stored 0%)
  adding: content/output/data/heightmaps/umap-heightmap.png (deflated 1%)
  adding: content/output/data/image-vectors/ (stored 0%)
  adding: content/output/data/image-vectors/Jonas Phillips Levy.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Abraham Rodriguez Brandon Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Isaac Jr. &amp; Benjamin Frederick Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Miriam Peixotto Davis.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Frances Allen Mitchell Levy.jpg.npy (deflated 11%)
  adding: content/output/data/image-vectors/Selina Seixas Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Selina Seixas.jpg.npy (deflated 11%)
  adding: content/output/data/image-vectors/Jefferson Monroe and Isabella Levy.jpg.npy (deflated 11%)
  adding: content/output/data/image-vectors/Joseph Washington Moses.jpg.npy (deflated 11%)
  adding: content/output/data/image-vectors/Isaac Phillips.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Caroline Seixas.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Isaac Moses,  Jr..jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Aaron N. Phillips.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Gershom Arnold Moses.jpg.npy (deflated 9%)
  adding: content/output/data/image-vectors/Henrietta Raphael Seixas.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Israel Moses.jpg.npy (deflated 12%)
  adding: content/output/data/image-vectors/Sophia Phillips.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Benjamin Frederick Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Judah Touro.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Gerhsom Arnold Sexias.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Jonas Benjamin Phillips.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Selina Seixas &amp; unidentified infant.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Rebecca Esther Jackson Noah.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Lionel Moses.jpg.npy (deflated 9%)
  adding: content/output/data/image-vectors/Rachel Phillips Marchant.jpg.npy (deflated 11%)
  adding: content/output/data/image-vectors/Selina &amp; Seraphine Seixas.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Sarah Edith Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Rosalie Hendricks Allen.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Blanche Moses.jpg.npy (deflated 10%)
  adding: content/output/data/image-vectors/Sarah Edith Moses, &amp; nurse Biddy.jpg.npy (deflated 10%)
  adding: content/output/data/originals/ (stored 0%)
  adding: content/output/data/originals/Abraham Rodriguez Brandon Moses.jpg (deflated 5%)
  adding: content/output/data/originals/Gershom Arnold Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Isaac Jr. &amp; Benjamin Frederick Moses.jpg (deflated 5%)
  adding: content/output/data/originals/Miriam Peixotto Davis.jpg (deflated 4%)
  adding: content/output/data/originals/Jonas Phillips Levy.jpg (deflated 5%)
  adding: content/output/data/originals/Henrietta Raphael Seixas.jpg (deflated 5%)
  adding: content/output/data/originals/Isaac Moses,  Jr..jpg (deflated 7%)
  adding: content/output/data/originals/Selina &amp; Seraphine Seixas.jpg (deflated 4%)
  adding: content/output/data/originals/Selina Seixas Moses.jpg (deflated 5%)
  adding: content/output/data/originals/Sarah Edith Moses, &amp; nurse Biddy.jpg (deflated 4%)
  adding: content/output/data/originals/Sophia Phillips.jpg (deflated 4%)
  adding: content/output/data/originals/Sarah Edith Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Frances Allen Mitchell Levy.jpg (deflated 4%)
  adding: content/output/data/originals/Benjamin Frederick Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Rosalie Hendricks Allen.jpg (deflated 4%)
  adding: content/output/data/originals/Rebecca Esther Jackson Noah.jpg (deflated 4%)
  adding: content/output/data/originals/Israel Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Blanche Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Joseph Washington Moses.jpg (deflated 4%)
  adding: content/output/data/originals/Rachel Phillips Marchant.jpg (deflated 4%)
  adding: content/output/data/originals/Isaac Phillips.jpg (deflated 4%)
  adding: content/output/data/originals/Lionel Moses.jpg (deflated 0%)
  adding: content/output/data/originals/Aaron N. Phillips.jpg (deflated 4%)
  adding: content/output/data/originals/Jefferson Monroe and Isabella Levy.jpg (deflated 4%)
  adding: content/output/data/originals/Judah Touro.jpg (deflated 4%)
  adding: content/output/data/originals/Selina Seixas &amp; unidentified infant.jpg (deflated 4%)
  adding: content/output/data/originals/Jonas Benjamin Phillips.jpg (deflated 5%)
  adding: content/output/data/originals/Gerhsom Arnold Sexias.jpg (deflated 3%)
  adding: content/output/data/originals/Caroline Seixas.jpg (deflated 4%)
  adding: content/output/data/originals/Selina Seixas.jpg (deflated 4%)
  adding: content/output/data/imagelists/ (stored 0%)
  adding: content/output/data/imagelists/imagelist-c90fb19c-eae8-11ea-aa0b-0242ac1c0002.json (deflated 88%)
  adding: content/output/data/atlases/ (stored 0%)
  adding: content/output/data/atlases/c90fb19c-eae8-11ea-aa0b-0242ac1c0002/ (stored 0%)
  adding: content/output/data/atlases/c90fb19c-eae8-11ea-aa0b-0242ac1c0002/atlas_positions.json (deflated 87%)
  adding: content/output/data/atlases/c90fb19c-eae8-11ea-aa0b-0242ac1c0002/atlas-0.jpg (deflated 88%)
  adding: content/output/index.html (deflated 72%)

Then run this line of code in the terminal: python -m http.server 5000 and click the link! You are running a local server now! Find the output link if you see a directory and the images should load!

In [ ]: