Skip to content

Instantly share code, notes, and snippets.

@rsignell-usgs
Created June 25, 2018 00:56
Show Gist options
  • Save rsignell-usgs/c4e7650d5f94c00d6a7b7cd67acf2ab9 to your computer and use it in GitHub Desktop.
Save rsignell-usgs/c4e7650d5f94c00d6a7b7cd67acf2ab9 to your computer and use it in GitHub Desktop.
Read image data from s3
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# read image with Boto3"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import boto3\n",
"from io import BytesIO\n",
"import matplotlib.image as mpimg\n",
"import matplotlib.pyplot as plt\n",
"\n",
"resource = boto3.resource('s3', region_name='us-west-2')\n",
"bucket = resource.Bucket('cdi-workshop')\n",
"\n",
"image_object = bucket.Object('imrecog_data/EuroSAT/HerbaceousVegetation/HerbaceousVegetation_39.jpg')\n",
"image = mpimg.imread(BytesIO(image_object.get()['Body'].read()), 'jpg')\n",
"\n",
"plt.figure(0)\n",
"plt.imshow(image);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Read image with s3fs"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['cdi-workshop/imrecog_data', 'cdi-workshop/semseg_data']"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import s3fs\n",
"fs = s3fs.S3FileSystem(anon=True)\n",
"fs.ls('cdi-workshop')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with fs.open('cdi-workshop/imrecog_data/EuroSAT/HerbaceousVegetation/HerbaceousVegetation_39.jpg', 'rb') as f:\n",
" image = mpimg.imread(f, 'jpg')\n",
" plt.figure(0)\n",
" plt.imshow(image);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment