From 777c8b61065e25eb1a8c49d7052c53d73dd5c781 Mon Sep 17 00:00:00 2001 From: ml server Date: Sun, 26 Jan 2020 17:12:08 -0700 Subject: [PATCH] wut-web-dev notebook not used anymore --- notebooks/wut-web-dev.ipynb | 290 ------------------------------------ 1 file changed, 290 deletions(-) delete mode 100644 notebooks/wut-web-dev.ipynb diff --git a/notebooks/wut-web-dev.ipynb b/notebooks/wut-web-dev.ipynb deleted file mode 100644 index 4a37690..0000000 --- a/notebooks/wut-web-dev.ipynb +++ /dev/null @@ -1,290 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# wut-web --- What U Think? Web App: SatNOGS Observation AI, makes predictions.\n", - "#\n", - "# https://spacecruft.org/spacecruft/satnogs-wut\n", - "#\n", - "# GPLv3+\n", - "\n", - "#from collections import defaultdict\n", - "#import PIL as pil\n", - "\n", - "import json\n", - "import os\n", - "import random\n", - "import tempfile\n", - "import shutil\n", - "import tensorflow as tf\n", - "import ipywidgets as wg\n", - "import matplotlib.pyplot as plt\n", - "from IPython.display import display, Image\n", - "from IPython.utils import text\n", - "from PIL import Image as im\n", - "from tensorflow.python.keras.models import load_model\n", - "from tensorflow.python.keras.preprocessing.image import ImageDataGenerator" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "display(Image(filename='/srv/satnogs/satnogs-wut/pics/spacecruft-bk.png'))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%HTML\n", - "

wut?

\n", - "

\n", - "

DEVELOPMENT VERSION

\n", - "Main site:
wut.spacecruft.org" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(\"wut? --- What U Think? SatNOGS Observation AI.\")\n", - "print(\"\")\n", - "print(\"wut is an AI that rates SatNOGS Observations good or bad.\")\n", - "print(\"The training model was built from DUV transmissions recorded by the\")\n", - "print(\"SatNOGS network in December, 2019.\")\n", - "print(\"The plan is to have models of all SatNOGS modes (65 at present),\")\n", - "print(\"and you can enter an arbitrary Observation ID and the AI will return a rating.\")\n", - "print(\"\")\n", - "print(\"Source Code:\")\n", - "print(\"https://spacecruft.org/spacecruft/satnogs-wut\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "IMG_HEIGHT = 416\n", - "IMG_WIDTH = 804\n", - "batch_size = 32\n", - "minobsid = 1292461\n", - "maxobsid = 1470525\n", - "#maxobsid = 1591638 # 2020-01-24\n", - "base_dir = ('/srv/wut/data')\n", - "sample_dir = ('/srv/wut/data/test/unvetted')\n", - "model_file = os.path.join(base_dir, 'models', 'wut-DUV-201912.tf')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "model = load_model(model_file)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def gen_image(test_data_gen,test_dir):\n", - " test_image_gen = ImageDataGenerator(rescale=1./255);\n", - " test_data_gen = test_image_gen.flow_from_directory(batch_size=1,\n", - " directory=test_dir,\n", - " target_size=(IMG_HEIGHT, IMG_WIDTH),\n", - " shuffle=True,\n", - " class_mode='binary')\n", - " return test_data_gen" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def rm_image_tmp(test_dir):\n", - " #print('Not removed:', test_dir)\n", - " shutil.rmtree(test_dir)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture --no-stderr --no-stdout\n", - "def gen_image_tmp(obs_waterfalltmp):\n", - " tmp_dir = tempfile.mkdtemp()\n", - " test_dir = os.path.join(tmp_dir)\n", - " os.makedirs(test_dir + '/unvetted', exist_ok=True)\n", - " shutil.copy(obs_waterfalltmp, test_dir + '/unvetted/') \n", - " \n", - " img = im.open(obs_waterfalltmp).resize( (100,200))\n", - " display(img)\n", - "\n", - " return test_dir" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def obs_wutsay(test_data_gen):\n", - " prediction = model.predict(\n", - " x=test_data_gen,\n", - " verbose=0)\n", - " predictions=[]\n", - " prediction_bool = (prediction >0.8)\n", - " predictions = prediction_bool.astype(int)\n", - " \n", - " return prediction_bool" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_obs_dict(datObs):\n", - " obsjsonfile=('/srv/satnogs/download/' + format(datObs) + '/' + format(datObs) + '.json')\n", - " with open(obsjsonfile) as f:\n", - " content = f.read()\n", - " data = json.loads(content)\n", - " res = {x : data[x] for x in range(len(data))}\n", - " res2 = dict(enumerate(data))\n", - " obs_dict=(res2[0])\n", - " \n", - " return obs_dict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_obs_var(var, datObs):\n", - " obs_dict=get_obs_dict(datObs);\n", - " obs_var=(obs_dict[(var)])\n", - " \n", - " return obs_var" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def doallthethings(datObs):\n", - "\n", - " obs_waterfall=get_obs_var('waterfall', datObs) \n", - " obs_waterfallpic=os.path.basename(obs_waterfall)\n", - " obs_waterfalltmp = os.path.join('/srv/satnogs/download', str(get_obs_var('id', datObs)), obs_waterfallpic)\n", - "\n", - " test_dir=gen_image_tmp(obs_waterfalltmp);\n", - " test_data_gen=gen_image(obs_waterfalltmp, test_dir);\n", - " \n", - " prediction_bool=obs_wutsay(test_data_gen);\n", - "\n", - " print()\n", - " print('Observation ID: ', get_obs_var('id', datObs))\n", - " print('Encoding: ', get_obs_var('transmitter_mode', datObs))\n", - " print('Human rating: ', get_obs_var('vetted_status', datObs))\n", - " if prediction_bool[0] == False:\n", - " rating = 'bad'\n", - " else:\n", - " rating = 'good'\n", - " print('wut AI rating: %s' % (rating)) \n", - " print()\n", - " if get_obs_var('transmitter_mode', datObs) == 'DUV':\n", - " print(\"Using DUV training model.\")\n", - " else:\n", - " print(\"NOTE: wut has not been trained on\", get_obs_var('transmitter_mode', datObs), \"encodings.\")\n", - " print('https://network.satnogs.org/observations/' + str(get_obs_var('id', datObs)))\n", - " #!cat $obsjsonfile\n", - " rm_image_tmp(test_dir)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def wutObs(datObs):\n", - " if int(datObs) > ( minobsid - 1 ) and int(datObs) < ( maxobsid + 1):\n", - " doallthethings(datObs)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%%capture\n", - "def display_results():\n", - " print('Enter an Observation ID between', minobsid, 'and', maxobsid)\n", - " wutObs_slide = wg.IntText(value='1292461')\n", - " wg.interact(wutObs, datObs=wutObs_slide)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "display_results()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -}