{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# HELEN Prepare Flickr API" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "%reload_ext autoreload\n", "%autoreload 2\n", "\n", "import os\n", "from os.path import join\n", "from glob import glob, iglob\n", "from pathlib import Path\n", "from tqdm import tqdm_notebook as tqdm\n", "\n", "import h5py\n", "from scipy import misc\n", "from io import BytesIO\n", "from base64 import b64decode\n", "\n", "from PIL import Image, ImageDraw\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import scipy.io as sio\n", "import h5py\n", "import numpy as np\n", "import pandas as pd\n", "import sys\n", "sys.path.append('/work/megapixels_dev/megapixels/')\n", "from app.utils import file_utils" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create filepaths CSV" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "fp_flickr_meta = '/data_store_hdd/datasets/people/helen/research/helen_flickr_api_dump.csv'\n", "fp_photo_ids = '/data_store_hdd/datasets/people/helen/research/helen_flickr_photo_ids.csv'\n", "fp_filepaths = '/data_store_hdd/datasets/people/helen/research/helen_file_meta.csv'" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "df_photo_ids = pd.read_csv(fp_photo_ids)\n", "photo_ids = df_photo_ids.to_dict('records')" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "df_flickr_meta = pd.read_csv(fp_flickr_meta, dtype={'photo_id': str})\n", "flickr_meta_records = df_flickr_meta.to_dict('records')" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1854\n", "2122\n" ] } ], "source": [ "print(len(flickr_meta_records))\n", "print(len(df_photo_ids))" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "# create the file meta csv\n", "results = []\n", "results_download = []\n", "for flickr_meta_record in flickr_meta_records:\n", " # farm, server, photo id, secret\n", " photo_id = str(flickr_meta_record['photo_id'])\n", " nsid = flickr_meta_record.get('nsid')\n", " fp_json = join(fp_dir_flickr_meta, f'{photo_id}.json')\n", " json_data = file_utils.load_json(fp_json)\n", " photo_meta = json_data.get('photo')\n", " farm = photo_meta.get('farm')\n", " server = photo_meta.get('server')\n", " secret = photo_meta.get('secret')\n", " # https://farm4.staticflickr.com/3214/3036412907_65deee68e2.jpg\n", " url = f'https://farm{farm}.staticflickr.com/{server}/{photo_id}_{secret}.jpg'\n", " obj = {\n", " 'nsid': nsid,\n", " 'photo_id': photo_id,\n", " 'url': url,\n", " 'filepath': f'{photo_id}.jpg'\n", " }\n", " results.append(obj)" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "df_out = pd.DataFrame.from_dict(results)\n", "df_out.to_csv(fp_filepaths, index=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "fp_in = '/data_store/datasets/people/helen/research/flickr_photo_ids.txt'\n", "fp_out = '/data_store/datasets/people/helen/research/helen_flickr_meta.csv'" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "photo_id_list = file_utils.load_text(fp_in)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "items = [{'photo_id': x.split('_')[0]} for x in photo_id_list]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame.from_dict(items)\n", "df.to_csv(fp_out, index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load Flickr API Dump\n", "\n", "- and create Flickr meta" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "fp_api_dump = '/data_store/datasets/people/helen/research/helen_flickr_api_dump.csv'\n", "df = pd.read_csv(fp_api_dump)\n", "#records = df.to_dict('records')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "groups = df.groupby('nsid')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "results = []\n", "for nsid, group in groups:\n", " obj = {\n", " 'nsid': nsid,\n", " 'count': len(group)\n", " }\n", " results.append(obj)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "pd.DataFrame.from_dict(results).to_csv(fp_out, index=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "megapixels", "language": "python", "name": "megapixels" }, "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }