From baca42b1d643fb44fa4d91dce733082c7ea91465 Mon Sep 17 00:00:00 2001
From: Adam Paquette <acp263@nau.edu>
Date: Fri, 4 May 2018 00:44:32 -0700
Subject: [PATCH] Small notebook clean ups

---
 notebooks/Socet2ISIS.ipynb | 1942 +++++++++++++++++++++++++++++++++---
 1 file changed, 1820 insertions(+), 122 deletions(-)

diff --git a/notebooks/Socet2ISIS.ipynb b/notebooks/Socet2ISIS.ipynb
index d4068c8..507c738 100644
--- a/notebooks/Socet2ISIS.ipynb
+++ b/notebooks/Socet2ISIS.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -13,8 +13,10 @@
     "\n",
     "import pandas as pd\n",
     "import numpy as np\n",
+    "import math\n",
+    "import pyproj\n",
     "\n",
-    "sys.path.insert(0, \"/home/tthatcher/Desktop/Projects/Plio/plio\")\n",
+    "sys.path.insert(0, \"/home/tthatcher/Desktop/Projects/?Plio/plio\")\n",
     "\n",
     "from plio.examples import get_path\n",
     "from plio.io.io_bae import read_gpf, read_ipf"
@@ -22,7 +24,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -76,41 +78,13 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [],
-   "source": [
-    "atf_dict = read_atf(get_path('CTX_Athabasca_Middle_step0.atf'))\n",
-    "\n",
-    "gpf_file = os.path.join(atf_dict['PATH'], atf_dict['GP_FILE']);\n",
-    "ipf_list = [os.path.join(atf_dict['PATH'], i) for i in atf_dict['IMAGE_IPF']]\n",
-    "\n",
-    "gpf_df = read_gpf(gpf_file).set_index('point_id')\n",
-    "ipf_df = read_ipf(ipf_list).set_index('pt_id')\n",
-    "\n",
-    "point_diff = ipf_df.index.difference(gpf_df.index)\n",
-    "\n",
-    "if len(point_diff) != 0:\n",
-    "    warnings.warn(\"The following points found in ipf files missing from gpf file: \\n\\n{}. \\\n",
-    "                  \\n\\nContinuing, but these points will be missing from the control network\".format(list(point_diff)))\n",
-    "\n",
-    "new_df = ipf_df.merge(gpf_df, left_index=True, right_index=True)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [],
    "source": [
-    "import math\n",
-    "import pyproj\n",
-    "\n",
     "# converts columns l. and s. to isis\n",
-    "def line_sample_size(record):\n",
-    "    with open(atf_dict['PATH'] + '/' + record['ipf_file'] + '.sup') as f:\n",
+    "def line_sample_size(record, path):\n",
+    "    with open(os.path.join(path, record['ipf_file'] + '.sup')) as f:\n",
     "        for i, line in enumerate(f):\n",
     "            if i == 3:\n",
     "                line_size = line.split(' ')\n",
@@ -162,7 +136,7 @@
     "\n",
     "# gets eRadius and pRadius from a .prj file\n",
     "def get_axis(file):\n",
-    "    with open(atf_dict['PATH'] + '/' + file) as f:\n",
+    "    with open(file) as f:\n",
     "        from collections import defaultdict\n",
     "\n",
     "        files = defaultdict(list)\n",
@@ -195,106 +169,1830 @@
     "    lon, lat, height = pyproj.transform(lla, ecef, record['long_X_East'], record['lat_Y_North'], record['ht'])\n",
     "    return lon, lat, height\n",
     "\n",
-    "def socet2isis(prj_file):\n",
+    "def apply_transformation(atf_dict, df):\n",
+    "    prj_file = os.path.join(atf_dict['PATH'], atf_dict['PROJECT'].split('\\\\')[-1])\n",
+    "    \n",
     "    eRadius, pRadius = get_axis(prj_file)\n",
-    "    new_df['s.'], new_df['l.'] = (zip(*new_df.apply(sample_size, axis=1)))\n",
-    "    new_df['known'] = new_df.apply(known, axis=1)\n",
-    "    new_df['lat_Y_North'] = new_df.apply(lat_ISIS_coord, semi_major = eRadius, semi_minor = pRadius, axis=1)\n",
-    "    new_df['long_X_East'] = new_df.apply(lon_ISIS_coord, semi_major = eRadius, semi_minor = pRadius, axis=1)\n",
-    "    new_df['long_X_East'], new_df['lat_Y_North'], new_df['ht'] = zip(*new_df.apply(body_fix, semi_major = eRadius, semi_minor = pRadius, axis = 1))\n",
-    "\n",
-    "socet2isis('CTX_Athabasca_Middle.prj')"
+    "    df['s.'], df['l.'] = (zip(*df.apply(line_sample_size, path = atf_dict['PATH'], axis=1)))\n",
+    "    df['known'] = df.apply(known, axis=1)\n",
+    "    df['lat_Y_North'] = df.apply(lat_ISIS_coord, semi_major = eRadius, semi_minor = pRadius, axis=1)\n",
+    "    df['long_X_East'] = df.apply(lon_ISIS_coord, semi_major = eRadius, semi_minor = pRadius, axis=1)\n",
+    "    df['long_X_East'], df['lat_Y_North'], df['ht'] = zip(*df.apply(body_fix, semi_major = eRadius, semi_minor = pRadius, axis = 1))"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "new_df"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
+   "execution_count": 8,
+   "metadata": {
+    "scrolled": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>pt_id</th>\n",
+       "      <th>val</th>\n",
+       "      <th>fid_val</th>\n",
+       "      <th>no_obs</th>\n",
+       "      <th>l.</th>\n",
+       "      <th>s.</th>\n",
+       "      <th>sig_l</th>\n",
+       "      <th>sig_s</th>\n",
+       "      <th>res_l</th>\n",
+       "      <th>res_s</th>\n",
+       "      <th>...</th>\n",
+       "      <th>known</th>\n",
+       "      <th>lat_Y_North</th>\n",
+       "      <th>long_X_East</th>\n",
+       "      <th>ht</th>\n",
+       "      <th>sig0</th>\n",
+       "      <th>sig1</th>\n",
+       "      <th>sig2</th>\n",
+       "      <th>res0</th>\n",
+       "      <th>res1</th>\n",
+       "      <th>res2</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <td>1_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>636.887207</td>\n",
+       "      <td>133.604004</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.278602</td>\n",
+       "      <td>-0.244702</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128580.921397</td>\n",
+       "      <td>3.391207e+06</td>\n",
+       "      <td>5990.723423</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>4.000000</td>\n",
+       "      <td>49.937532</td>\n",
+       "      <td>-24.131687</td>\n",
+       "      <td>639.699743</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <td>1_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>38.017578</td>\n",
+       "      <td>225.989258</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.062556</td>\n",
+       "      <td>-0.214713</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128580.921397</td>\n",
+       "      <td>3.391207e+06</td>\n",
+       "      <td>5990.723423</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>4.000000</td>\n",
+       "      <td>49.937532</td>\n",
+       "      <td>-24.131687</td>\n",
+       "      <td>639.699743</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <td>1_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4096.101562</td>\n",
+       "      <td>3221.674805</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.069161</td>\n",
+       "      <td>0.311984</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128580.921397</td>\n",
+       "      <td>3.391207e+06</td>\n",
+       "      <td>5990.723423</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>4.000000</td>\n",
+       "      <td>49.937532</td>\n",
+       "      <td>-24.131687</td>\n",
+       "      <td>639.699743</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <td>1_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>9564.642090</td>\n",
+       "      <td>3048.304413</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.002209</td>\n",
+       "      <td>0.194239</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128580.921397</td>\n",
+       "      <td>3.391207e+06</td>\n",
+       "      <td>5990.723423</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>4.000000</td>\n",
+       "      <td>49.937532</td>\n",
+       "      <td>-24.131687</td>\n",
+       "      <td>639.699743</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <td>2_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>733.781250</td>\n",
+       "      <td>1935.229126</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.087176</td>\n",
+       "      <td>0.686952</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128441.872032</td>\n",
+       "      <td>3.391210e+06</td>\n",
+       "      <td>5983.451630</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.950495</td>\n",
+       "      <td>31.803679</td>\n",
+       "      <td>2.604902</td>\n",
+       "      <td>626.707206</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>5</th>\n",
+       "      <td>2_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>127.934814</td>\n",
+       "      <td>1937.150757</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.228660</td>\n",
+       "      <td>0.105249</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128441.872032</td>\n",
+       "      <td>3.391210e+06</td>\n",
+       "      <td>5983.451630</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.950495</td>\n",
+       "      <td>31.803679</td>\n",
+       "      <td>2.604902</td>\n",
+       "      <td>626.707206</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>6</th>\n",
+       "      <td>2_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4193.808594</td>\n",
+       "      <td>5020.347900</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.012951</td>\n",
+       "      <td>-0.655346</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128441.872032</td>\n",
+       "      <td>3.391210e+06</td>\n",
+       "      <td>5983.451630</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.950495</td>\n",
+       "      <td>31.803679</td>\n",
+       "      <td>2.604902</td>\n",
+       "      <td>626.707206</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>7</th>\n",
+       "      <td>2_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>9648.685059</td>\n",
+       "      <td>4511.925781</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.017553</td>\n",
+       "      <td>-0.095367</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128441.872032</td>\n",
+       "      <td>3.391210e+06</td>\n",
+       "      <td>5983.451630</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.950495</td>\n",
+       "      <td>31.803679</td>\n",
+       "      <td>2.604902</td>\n",
+       "      <td>626.707206</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>8</th>\n",
+       "      <td>3_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3675.705360</td>\n",
+       "      <td>130.808105</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.292195</td>\n",
+       "      <td>-0.573220</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128549.488243</td>\n",
+       "      <td>3.391178e+06</td>\n",
+       "      <td>6191.069521</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>21.103941</td>\n",
+       "      <td>14.908475</td>\n",
+       "      <td>0.160007</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9</th>\n",
+       "      <td>3_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3077.260986</td>\n",
+       "      <td>243.122803</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.025129</td>\n",
+       "      <td>-0.002447</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128549.488243</td>\n",
+       "      <td>3.391178e+06</td>\n",
+       "      <td>6191.069521</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>21.103941</td>\n",
+       "      <td>14.908475</td>\n",
+       "      <td>0.160007</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>10</th>\n",
+       "      <td>3_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>7133.555908</td>\n",
+       "      <td>3216.088989</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.115060</td>\n",
+       "      <td>0.637035</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128549.488243</td>\n",
+       "      <td>3.391178e+06</td>\n",
+       "      <td>6191.069521</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>21.103941</td>\n",
+       "      <td>14.908475</td>\n",
+       "      <td>0.160007</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>11</th>\n",
+       "      <td>3_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>12608.661621</td>\n",
+       "      <td>3076.060059</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.410752</td>\n",
+       "      <td>-0.034337</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128549.488243</td>\n",
+       "      <td>3.391178e+06</td>\n",
+       "      <td>6191.069521</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>21.103941</td>\n",
+       "      <td>14.908475</td>\n",
+       "      <td>0.160007</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>12</th>\n",
+       "      <td>4_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3666.593819</td>\n",
+       "      <td>1973.703430</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.077725</td>\n",
+       "      <td>-0.229233</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128406.803199</td>\n",
+       "      <td>3.391150e+06</td>\n",
+       "      <td>6176.347780</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>3.108341</td>\n",
+       "      <td>37.727723</td>\n",
+       "      <td>-0.091345</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>13</th>\n",
+       "      <td>4_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>3059.900879</td>\n",
+       "      <td>1995.819763</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.000756</td>\n",
+       "      <td>0.227752</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128406.803199</td>\n",
+       "      <td>3.391150e+06</td>\n",
+       "      <td>6176.347780</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>3.108341</td>\n",
+       "      <td>37.727723</td>\n",
+       "      <td>-0.091345</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>14</th>\n",
+       "      <td>4_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>7124.632812</td>\n",
+       "      <td>5057.766357</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.167556</td>\n",
+       "      <td>0.073290</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128406.803199</td>\n",
+       "      <td>3.391150e+06</td>\n",
+       "      <td>6176.347780</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>3.108341</td>\n",
+       "      <td>37.727723</td>\n",
+       "      <td>-0.091345</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>15</th>\n",
+       "      <td>4_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>12584.568359</td>\n",
+       "      <td>4578.463135</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.038169</td>\n",
+       "      <td>-0.009286</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128406.803199</td>\n",
+       "      <td>3.391150e+06</td>\n",
+       "      <td>6176.347780</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>3.108341</td>\n",
+       "      <td>37.727723</td>\n",
+       "      <td>-0.091345</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>16</th>\n",
+       "      <td>5_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>7134.696045</td>\n",
+       "      <td>113.482666</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.197372</td>\n",
+       "      <td>0.427726</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128517.312267</td>\n",
+       "      <td>3.391209e+06</td>\n",
+       "      <td>6419.274479</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.000000</td>\n",
+       "      <td>-12.889142</td>\n",
+       "      <td>51.259099</td>\n",
+       "      <td>357.103948</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>17</th>\n",
+       "      <td>5_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>6535.984131</td>\n",
+       "      <td>239.156494</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.062022</td>\n",
+       "      <td>-0.109977</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128517.312267</td>\n",
+       "      <td>3.391209e+06</td>\n",
+       "      <td>6419.274479</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.000000</td>\n",
+       "      <td>-12.889142</td>\n",
+       "      <td>51.259099</td>\n",
+       "      <td>357.103948</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>18</th>\n",
+       "      <td>5_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>10589.505402</td>\n",
+       "      <td>3193.742798</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.003147</td>\n",
+       "      <td>-0.370465</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128517.312267</td>\n",
+       "      <td>3.391209e+06</td>\n",
+       "      <td>6419.274479</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.000000</td>\n",
+       "      <td>-12.889142</td>\n",
+       "      <td>51.259099</td>\n",
+       "      <td>357.103948</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>19</th>\n",
+       "      <td>5_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>16071.753662</td>\n",
+       "      <td>3081.683167</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.028646</td>\n",
+       "      <td>0.071183</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128517.312267</td>\n",
+       "      <td>3.391209e+06</td>\n",
+       "      <td>6419.274479</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>5.000000</td>\n",
+       "      <td>-12.889142</td>\n",
+       "      <td>51.259099</td>\n",
+       "      <td>357.103948</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>20</th>\n",
+       "      <td>6_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>7102.087646</td>\n",
+       "      <td>1949.583435</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.285198</td>\n",
+       "      <td>0.772034</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128377.511876</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6403.215835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>3.121641</td>\n",
+       "      <td>-31.093062</td>\n",
+       "      <td>66.736732</td>\n",
+       "      <td>356.122636</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>21</th>\n",
+       "      <td>6_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>6494.826904</td>\n",
+       "      <td>1981.567139</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.072678</td>\n",
+       "      <td>-0.056104</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128377.511876</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6403.215835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>3.121641</td>\n",
+       "      <td>-31.093062</td>\n",
+       "      <td>66.736732</td>\n",
+       "      <td>356.122636</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>22</th>\n",
+       "      <td>6_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>10557.184998</td>\n",
+       "      <td>5027.936035</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.181958</td>\n",
+       "      <td>-0.675581</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128377.511876</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6403.215835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>3.121641</td>\n",
+       "      <td>-31.093062</td>\n",
+       "      <td>66.736732</td>\n",
+       "      <td>356.122636</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>23</th>\n",
+       "      <td>6_8344_8845_4r</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>16024.696533</td>\n",
+       "      <td>4573.034546</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.252450</td>\n",
+       "      <td>0.087870</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128377.511876</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6403.215835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>3.121641</td>\n",
+       "      <td>-31.093062</td>\n",
+       "      <td>66.736732</td>\n",
+       "      <td>356.122636</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>24</th>\n",
+       "      <td>7_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>2189.197876</td>\n",
+       "      <td>1236.767822</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.033596</td>\n",
+       "      <td>-0.072372</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128482.050675</td>\n",
+       "      <td>3.391230e+06</td>\n",
+       "      <td>6084.815920</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>24.733822</td>\n",
+       "      <td>11.439326</td>\n",
+       "      <td>-0.027924</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>25</th>\n",
+       "      <td>7_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1586.072266</td>\n",
+       "      <td>1276.635132</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.215250</td>\n",
+       "      <td>-0.040427</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128482.050675</td>\n",
+       "      <td>3.391230e+06</td>\n",
+       "      <td>6084.815920</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>24.733822</td>\n",
+       "      <td>11.439326</td>\n",
+       "      <td>-0.027924</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>26</th>\n",
+       "      <td>7_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>5647.930176</td>\n",
+       "      <td>4310.226440</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.003882</td>\n",
+       "      <td>0.065814</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128482.050675</td>\n",
+       "      <td>3.391230e+06</td>\n",
+       "      <td>6084.815920</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>24.733822</td>\n",
+       "      <td>11.439326</td>\n",
+       "      <td>-0.027924</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>27</th>\n",
+       "      <td>7_8344_8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>11111.006592</td>\n",
+       "      <td>3943.333252</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.059065</td>\n",
+       "      <td>0.087813</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128482.050675</td>\n",
+       "      <td>3.391230e+06</td>\n",
+       "      <td>6084.815920</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>24.733822</td>\n",
+       "      <td>11.439326</td>\n",
+       "      <td>-0.027924</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>28</th>\n",
+       "      <td>8_8344-8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>5542.947632</td>\n",
+       "      <td>1464.650391</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.323130</td>\n",
+       "      <td>-0.233976</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128427.996026</td>\n",
+       "      <td>3.391164e+06</td>\n",
+       "      <td>6303.984552</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>-10.407533</td>\n",
+       "      <td>49.477076</td>\n",
+       "      <td>-0.403329</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>29</th>\n",
+       "      <td>8_8344-8845_4r_mt_z</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>4937.825317</td>\n",
+       "      <td>1515.654663</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-0.241922</td>\n",
+       "      <td>0.382924</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Constrained</td>\n",
+       "      <td>128427.996026</td>\n",
+       "      <td>3.391164e+06</td>\n",
+       "      <td>6303.984552</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>2.000000</td>\n",
+       "      <td>-10.407533</td>\n",
+       "      <td>49.477076</td>\n",
+       "      <td>-0.403329</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>889</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_40</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>5362.762207</td>\n",
+       "      <td>1847.786255</td>\n",
+       "      <td>0.471376</td>\n",
+       "      <td>0.471376</td>\n",
+       "      <td>0.026312</td>\n",
+       "      <td>-0.000174</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128675.128168</td>\n",
+       "      <td>3.391229e+06</td>\n",
+       "      <td>6084.840832</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>75.767937</td>\n",
+       "      <td>-35.657850</td>\n",
+       "      <td>644.763531</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>890</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_40</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>10844.760986</td>\n",
+       "      <td>1974.836243</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.157509</td>\n",
+       "      <td>-0.001441</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128675.128168</td>\n",
+       "      <td>3.391229e+06</td>\n",
+       "      <td>6084.840832</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>75.767937</td>\n",
+       "      <td>-35.657850</td>\n",
+       "      <td>644.763531</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>891</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_45</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>7024.168457</td>\n",
+       "      <td>2755.803833</td>\n",
+       "      <td>0.108634</td>\n",
+       "      <td>0.108634</td>\n",
+       "      <td>-0.166444</td>\n",
+       "      <td>0.001138</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128588.618783</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6187.548595</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>50.184150</td>\n",
+       "      <td>-4.046041</td>\n",
+       "      <td>588.777387</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>892</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_45</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>12503.000000</td>\n",
+       "      <td>2703.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.395202</td>\n",
+       "      <td>0.013016</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128588.618783</td>\n",
+       "      <td>3.391240e+06</td>\n",
+       "      <td>6187.548595</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>50.184150</td>\n",
+       "      <td>-4.046041</td>\n",
+       "      <td>588.777387</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>893</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_50</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>11733.504395</td>\n",
+       "      <td>136.169922</td>\n",
+       "      <td>0.018251</td>\n",
+       "      <td>0.018251</td>\n",
+       "      <td>0.107224</td>\n",
+       "      <td>-0.000834</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128739.414854</td>\n",
+       "      <td>3.391176e+06</td>\n",
+       "      <td>6517.800017</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>28.483787</td>\n",
+       "      <td>17.892238</td>\n",
+       "      <td>313.761748</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>894</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_50</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17243.623779</td>\n",
+       "      <td>722.720093</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.305437</td>\n",
+       "      <td>-0.095675</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128739.414854</td>\n",
+       "      <td>3.391176e+06</td>\n",
+       "      <td>6517.800017</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>28.483787</td>\n",
+       "      <td>17.892238</td>\n",
+       "      <td>313.761748</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>895</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_51</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>11567.785522</td>\n",
+       "      <td>2162.878784</td>\n",
+       "      <td>0.100262</td>\n",
+       "      <td>0.100262</td>\n",
+       "      <td>0.030784</td>\n",
+       "      <td>-0.000255</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128587.804938</td>\n",
+       "      <td>3.391218e+06</td>\n",
+       "      <td>6491.728748</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>9.182400</td>\n",
+       "      <td>30.510452</td>\n",
+       "      <td>320.356309</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>896</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_51</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17061.000000</td>\n",
+       "      <td>2268.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.360690</td>\n",
+       "      <td>0.000383</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128587.804938</td>\n",
+       "      <td>3.391218e+06</td>\n",
+       "      <td>6491.728748</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>9.182400</td>\n",
+       "      <td>30.510452</td>\n",
+       "      <td>320.356309</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>897</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_52</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>11948.254272</td>\n",
+       "      <td>2194.436432</td>\n",
+       "      <td>0.041556</td>\n",
+       "      <td>0.041556</td>\n",
+       "      <td>0.057196</td>\n",
+       "      <td>-0.000404</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128582.668391</td>\n",
+       "      <td>3.391247e+06</td>\n",
+       "      <td>6516.654553</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>4.852962</td>\n",
+       "      <td>33.470674</td>\n",
+       "      <td>288.119520</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>898</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_52</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17442.000000</td>\n",
+       "      <td>2292.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.351335</td>\n",
+       "      <td>0.001304</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128582.668391</td>\n",
+       "      <td>3.391247e+06</td>\n",
+       "      <td>6516.654553</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>4.852962</td>\n",
+       "      <td>33.470674</td>\n",
+       "      <td>288.119520</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>899</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_58</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>12983.731934</td>\n",
+       "      <td>2198.718445</td>\n",
+       "      <td>0.072085</td>\n",
+       "      <td>0.072085</td>\n",
+       "      <td>-0.069529</td>\n",
+       "      <td>0.000512</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128573.104159</td>\n",
+       "      <td>3.391278e+06</td>\n",
+       "      <td>6585.004506</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-6.163682</td>\n",
+       "      <td>40.349016</td>\n",
+       "      <td>193.553359</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>900</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_58</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18480.000000</td>\n",
+       "      <td>2297.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.527048</td>\n",
+       "      <td>0.001467</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128573.104159</td>\n",
+       "      <td>3.391278e+06</td>\n",
+       "      <td>6585.004506</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-6.163682</td>\n",
+       "      <td>40.349016</td>\n",
+       "      <td>193.553359</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>901</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_59</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>12877.165039</td>\n",
+       "      <td>2050.385132</td>\n",
+       "      <td>0.077120</td>\n",
+       "      <td>0.077120</td>\n",
+       "      <td>0.152207</td>\n",
+       "      <td>-0.001089</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128585.799796</td>\n",
+       "      <td>3.391282e+06</td>\n",
+       "      <td>6579.103533</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-3.413067</td>\n",
+       "      <td>38.993002</td>\n",
+       "      <td>204.076131</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>902</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_59</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18374.000000</td>\n",
+       "      <td>2180.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.300264</td>\n",
+       "      <td>-0.005505</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128585.799796</td>\n",
+       "      <td>3.391282e+06</td>\n",
+       "      <td>6579.103533</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-3.413067</td>\n",
+       "      <td>38.993002</td>\n",
+       "      <td>204.076131</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>903</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_60</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>12995.899414</td>\n",
+       "      <td>4428.867554</td>\n",
+       "      <td>0.046734</td>\n",
+       "      <td>0.046734</td>\n",
+       "      <td>0.130090</td>\n",
+       "      <td>-0.000687</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128400.976264</td>\n",
+       "      <td>3.391302e+06</td>\n",
+       "      <td>6568.745835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-30.567305</td>\n",
+       "      <td>50.125398</td>\n",
+       "      <td>188.794152</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>904</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_60</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18473.000000</td>\n",
+       "      <td>4087.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.311524</td>\n",
+       "      <td>0.112654</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128400.976264</td>\n",
+       "      <td>3.391302e+06</td>\n",
+       "      <td>6568.745835</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-30.567305</td>\n",
+       "      <td>50.125398</td>\n",
+       "      <td>188.794152</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>905</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_69</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17364.199219</td>\n",
+       "      <td>327.482178</td>\n",
+       "      <td>0.029037</td>\n",
+       "      <td>0.029037</td>\n",
+       "      <td>0.065413</td>\n",
+       "      <td>-0.000619</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128674.800478</td>\n",
+       "      <td>3.391337e+06</td>\n",
+       "      <td>6888.154986</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-30.549414</td>\n",
+       "      <td>71.615979</td>\n",
+       "      <td>-335.034008</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>906</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_69</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>22886.000000</td>\n",
+       "      <td>864.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.644605</td>\n",
+       "      <td>-0.157313</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128674.800478</td>\n",
+       "      <td>3.391337e+06</td>\n",
+       "      <td>6888.154986</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-30.549414</td>\n",
+       "      <td>71.615979</td>\n",
+       "      <td>-335.034008</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>907</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_70</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17249.494629</td>\n",
+       "      <td>2711.870987</td>\n",
+       "      <td>0.019142</td>\n",
+       "      <td>0.019142</td>\n",
+       "      <td>-0.126211</td>\n",
+       "      <td>0.000823</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128492.690578</td>\n",
+       "      <td>3.391346e+06</td>\n",
+       "      <td>6862.561805</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-58.842156</td>\n",
+       "      <td>56.249779</td>\n",
+       "      <td>-304.048490</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>908</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_70</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>22751.000000</td>\n",
+       "      <td>2706.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.841690</td>\n",
+       "      <td>0.038539</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128492.690578</td>\n",
+       "      <td>3.391346e+06</td>\n",
+       "      <td>6862.561805</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-58.842156</td>\n",
+       "      <td>56.249779</td>\n",
+       "      <td>-304.048490</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>909</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_73</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>17252.721191</td>\n",
+       "      <td>4263.836304</td>\n",
+       "      <td>0.052744</td>\n",
+       "      <td>0.052744</td>\n",
+       "      <td>-0.226624</td>\n",
+       "      <td>0.001462</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128371.105466</td>\n",
+       "      <td>3.391324e+06</td>\n",
+       "      <td>6850.789846</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-78.122640</td>\n",
+       "      <td>47.514722</td>\n",
+       "      <td>-295.531269</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>910</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_73</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>22741.000000</td>\n",
+       "      <td>3961.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.928108</td>\n",
+       "      <td>0.156281</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128371.105466</td>\n",
+       "      <td>3.391324e+06</td>\n",
+       "      <td>6850.789846</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-78.122640</td>\n",
+       "      <td>47.514722</td>\n",
+       "      <td>-295.531269</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>911</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_75</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18502.730469</td>\n",
+       "      <td>529.157959</td>\n",
+       "      <td>0.082464</td>\n",
+       "      <td>0.082464</td>\n",
+       "      <td>-0.190923</td>\n",
+       "      <td>0.001432</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128648.482025</td>\n",
+       "      <td>3.391346e+06</td>\n",
+       "      <td>6961.778315</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-44.796170</td>\n",
+       "      <td>78.481424</td>\n",
+       "      <td>-503.347488</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>912</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_75</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>24026.000000</td>\n",
+       "      <td>1014.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.987080</td>\n",
+       "      <td>-0.150590</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128648.482025</td>\n",
+       "      <td>3.391346e+06</td>\n",
+       "      <td>6961.778315</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-44.796170</td>\n",
+       "      <td>78.481424</td>\n",
+       "      <td>-503.347488</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>913</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_77</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18758.159180</td>\n",
+       "      <td>2569.342466</td>\n",
+       "      <td>0.042625</td>\n",
+       "      <td>0.042625</td>\n",
+       "      <td>0.017827</td>\n",
+       "      <td>-0.000155</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128488.835196</td>\n",
+       "      <td>3.391355e+06</td>\n",
+       "      <td>6963.148746</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-74.111380</td>\n",
+       "      <td>58.509410</td>\n",
+       "      <td>-523.498450</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>914</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_77</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>0</td>\n",
+       "      <td>24264.000000</td>\n",
+       "      <td>2592.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.809740</td>\n",
+       "      <td>0.032106</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128488.835196</td>\n",
+       "      <td>3.391355e+06</td>\n",
+       "      <td>6963.148746</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-74.111380</td>\n",
+       "      <td>58.509410</td>\n",
+       "      <td>-523.498450</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>915</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_78</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>19063.603516</td>\n",
+       "      <td>2722.018570</td>\n",
+       "      <td>0.404660</td>\n",
+       "      <td>0.404660</td>\n",
+       "      <td>-0.081565</td>\n",
+       "      <td>0.000531</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128473.854659</td>\n",
+       "      <td>3.391356e+06</td>\n",
+       "      <td>6982.122470</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-79.631963</td>\n",
+       "      <td>56.827213</td>\n",
+       "      <td>-568.949425</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>916</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_78</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>24569.000000</td>\n",
+       "      <td>2713.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.934600</td>\n",
+       "      <td>0.046266</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128473.854659</td>\n",
+       "      <td>3.391356e+06</td>\n",
+       "      <td>6982.122470</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-79.631963</td>\n",
+       "      <td>56.827213</td>\n",
+       "      <td>-568.949425</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>917</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_79</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>18911.627930</td>\n",
+       "      <td>4200.053345</td>\n",
+       "      <td>0.048931</td>\n",
+       "      <td>0.048931</td>\n",
+       "      <td>-0.186676</td>\n",
+       "      <td>0.001189</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128360.041397</td>\n",
+       "      <td>3.391348e+06</td>\n",
+       "      <td>6960.718265</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-97.331379</td>\n",
+       "      <td>41.418386</td>\n",
+       "      <td>-531.562532</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>918</th>\n",
+       "      <td>P03_002226_1895_XI_09N203W_79</td>\n",
+       "      <td>1</td>\n",
+       "      <td>0</td>\n",
+       "      <td>1</td>\n",
+       "      <td>24404.000000</td>\n",
+       "      <td>3907.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>1.015781</td>\n",
+       "      <td>0.174187</td>\n",
+       "      <td>...</td>\n",
+       "      <td>Free</td>\n",
+       "      <td>128360.041397</td>\n",
+       "      <td>3.391348e+06</td>\n",
+       "      <td>6960.718265</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.0</td>\n",
+       "      <td>0.000000</td>\n",
+       "      <td>-97.331379</td>\n",
+       "      <td>41.418386</td>\n",
+       "      <td>-531.562532</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>919 rows × 25 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "                             pt_id  val  fid_val  no_obs            l.  \\\n",
+       "0                   1_8344_8845_4r    1        0       0    636.887207   \n",
+       "1                   1_8344_8845_4r    1        0       0     38.017578   \n",
+       "2                   1_8344_8845_4r    1        0       0   4096.101562   \n",
+       "3                   1_8344_8845_4r    1        0       0   9564.642090   \n",
+       "4                   2_8344_8845_4r    1        0       0    733.781250   \n",
+       "5                   2_8344_8845_4r    1        0       0    127.934814   \n",
+       "6                   2_8344_8845_4r    1        0       0   4193.808594   \n",
+       "7                   2_8344_8845_4r    1        0       0   9648.685059   \n",
+       "8              3_8344_8845_4r_mt_z    1        0       0   3675.705360   \n",
+       "9              3_8344_8845_4r_mt_z    1        0       0   3077.260986   \n",
+       "10             3_8344_8845_4r_mt_z    1        0       0   7133.555908   \n",
+       "11             3_8344_8845_4r_mt_z    1        0       0  12608.661621   \n",
+       "12             4_8344_8845_4r_mt_z    1        0       0   3666.593819   \n",
+       "13             4_8344_8845_4r_mt_z    1        0       0   3059.900879   \n",
+       "14             4_8344_8845_4r_mt_z    1        0       0   7124.632812   \n",
+       "15             4_8344_8845_4r_mt_z    1        0       0  12584.568359   \n",
+       "16                  5_8344_8845_4r    1        0       0   7134.696045   \n",
+       "17                  5_8344_8845_4r    1        0       0   6535.984131   \n",
+       "18                  5_8344_8845_4r    1        0       0  10589.505402   \n",
+       "19                  5_8344_8845_4r    1        0       0  16071.753662   \n",
+       "20                  6_8344_8845_4r    1        0       0   7102.087646   \n",
+       "21                  6_8344_8845_4r    1        0       0   6494.826904   \n",
+       "22                  6_8344_8845_4r    1        0       0  10557.184998   \n",
+       "23                  6_8344_8845_4r    1        0       0  16024.696533   \n",
+       "24             7_8344_8845_4r_mt_z    1        0       0   2189.197876   \n",
+       "25             7_8344_8845_4r_mt_z    1        0       0   1586.072266   \n",
+       "26             7_8344_8845_4r_mt_z    1        0       0   5647.930176   \n",
+       "27             7_8344_8845_4r_mt_z    1        0       0  11111.006592   \n",
+       "28             8_8344-8845_4r_mt_z    1        0       0   5542.947632   \n",
+       "29             8_8344-8845_4r_mt_z    1        0       0   4937.825317   \n",
+       "..                             ...  ...      ...     ...           ...   \n",
+       "889  P03_002226_1895_XI_09N203W_40    1        0       1   5362.762207   \n",
+       "890  P03_002226_1895_XI_09N203W_40    1        0       1  10844.760986   \n",
+       "891  P03_002226_1895_XI_09N203W_45    1        0       1   7024.168457   \n",
+       "892  P03_002226_1895_XI_09N203W_45    1        0       1  12503.000000   \n",
+       "893  P03_002226_1895_XI_09N203W_50    1        0       1  11733.504395   \n",
+       "894  P03_002226_1895_XI_09N203W_50    1        0       1  17243.623779   \n",
+       "895  P03_002226_1895_XI_09N203W_51    1        0       1  11567.785522   \n",
+       "896  P03_002226_1895_XI_09N203W_51    1        0       1  17061.000000   \n",
+       "897  P03_002226_1895_XI_09N203W_52    1        0       1  11948.254272   \n",
+       "898  P03_002226_1895_XI_09N203W_52    1        0       1  17442.000000   \n",
+       "899  P03_002226_1895_XI_09N203W_58    1        0       1  12983.731934   \n",
+       "900  P03_002226_1895_XI_09N203W_58    1        0       1  18480.000000   \n",
+       "901  P03_002226_1895_XI_09N203W_59    1        0       1  12877.165039   \n",
+       "902  P03_002226_1895_XI_09N203W_59    1        0       1  18374.000000   \n",
+       "903  P03_002226_1895_XI_09N203W_60    1        0       1  12995.899414   \n",
+       "904  P03_002226_1895_XI_09N203W_60    1        0       1  18473.000000   \n",
+       "905  P03_002226_1895_XI_09N203W_69    1        0       1  17364.199219   \n",
+       "906  P03_002226_1895_XI_09N203W_69    1        0       1  22886.000000   \n",
+       "907  P03_002226_1895_XI_09N203W_70    1        0       1  17249.494629   \n",
+       "908  P03_002226_1895_XI_09N203W_70    1        0       1  22751.000000   \n",
+       "909  P03_002226_1895_XI_09N203W_73    1        0       1  17252.721191   \n",
+       "910  P03_002226_1895_XI_09N203W_73    1        0       1  22741.000000   \n",
+       "911  P03_002226_1895_XI_09N203W_75    1        0       1  18502.730469   \n",
+       "912  P03_002226_1895_XI_09N203W_75    1        0       1  24026.000000   \n",
+       "913  P03_002226_1895_XI_09N203W_77    1        0       1  18758.159180   \n",
+       "914  P03_002226_1895_XI_09N203W_77    1        0       0  24264.000000   \n",
+       "915  P03_002226_1895_XI_09N203W_78    1        0       1  19063.603516   \n",
+       "916  P03_002226_1895_XI_09N203W_78    1        0       1  24569.000000   \n",
+       "917  P03_002226_1895_XI_09N203W_79    1        0       1  18911.627930   \n",
+       "918  P03_002226_1895_XI_09N203W_79    1        0       1  24404.000000   \n",
+       "\n",
+       "              s.     sig_l     sig_s     res_l     res_s     ...      \\\n",
+       "0     133.604004  0.000000  0.000000  0.278602 -0.244702     ...       \n",
+       "1     225.989258  0.000000  0.000000 -0.062556 -0.214713     ...       \n",
+       "2    3221.674805  0.000000  0.000000 -0.069161  0.311984     ...       \n",
+       "3    3048.304413  0.000000  0.000000  0.002209  0.194239     ...       \n",
+       "4    1935.229126  0.000000  0.000000 -0.087176  0.686952     ...       \n",
+       "5    1937.150757  0.000000  0.000000  0.228660  0.105249     ...       \n",
+       "6    5020.347900  0.000000  0.000000 -0.012951 -0.655346     ...       \n",
+       "7    4511.925781  0.000000  0.000000  0.017553 -0.095367     ...       \n",
+       "8     130.808105  0.000000  0.000000 -0.292195 -0.573220     ...       \n",
+       "9     243.122803  0.000000  0.000000 -0.025129 -0.002447     ...       \n",
+       "10   3216.088989  0.000000  0.000000  0.115060  0.637035     ...       \n",
+       "11   3076.060059  0.000000  0.000000  0.410752 -0.034337     ...       \n",
+       "12   1973.703430  0.000000  0.000000  0.077725 -0.229233     ...       \n",
+       "13   1995.819763  0.000000  0.000000 -0.000756  0.227752     ...       \n",
+       "14   5057.766357  0.000000  0.000000  0.167556  0.073290     ...       \n",
+       "15   4578.463135  0.000000  0.000000 -0.038169 -0.009286     ...       \n",
+       "16    113.482666  0.000000  0.000000  0.197372  0.427726     ...       \n",
+       "17    239.156494  0.000000  0.000000  0.062022 -0.109977     ...       \n",
+       "18   3193.742798  0.000000  0.000000 -0.003147 -0.370465     ...       \n",
+       "19   3081.683167  0.000000  0.000000  0.028646  0.071183     ...       \n",
+       "20   1949.583435  0.000000  0.000000  0.285198  0.772034     ...       \n",
+       "21   1981.567139  0.000000  0.000000 -0.072678 -0.056104     ...       \n",
+       "22   5027.936035  0.000000  0.000000 -0.181958 -0.675581     ...       \n",
+       "23   4573.034546  0.000000  0.000000  0.252450  0.087870     ...       \n",
+       "24   1236.767822  0.000000  0.000000  0.033596 -0.072372     ...       \n",
+       "25   1276.635132  0.000000  0.000000  0.215250 -0.040427     ...       \n",
+       "26   4310.226440  0.000000  0.000000 -0.003882  0.065814     ...       \n",
+       "27   3943.333252  0.000000  0.000000 -0.059065  0.087813     ...       \n",
+       "28   1464.650391  0.000000  0.000000  0.323130 -0.233976     ...       \n",
+       "29   1515.654663  0.000000  0.000000 -0.241922  0.382924     ...       \n",
+       "..           ...       ...       ...       ...       ...     ...       \n",
+       "889  1847.786255  0.471376  0.471376  0.026312 -0.000174     ...       \n",
+       "890  1974.836243  0.000000  0.000000  0.157509 -0.001441     ...       \n",
+       "891  2755.803833  0.108634  0.108634 -0.166444  0.001138     ...       \n",
+       "892  2703.000000  0.000000  0.000000  0.395202  0.013016     ...       \n",
+       "893   136.169922  0.018251  0.018251  0.107224 -0.000834     ...       \n",
+       "894   722.720093  0.000000  0.000000  0.305437 -0.095675     ...       \n",
+       "895  2162.878784  0.100262  0.100262  0.030784 -0.000255     ...       \n",
+       "896  2268.000000  0.000000  0.000000  0.360690  0.000383     ...       \n",
+       "897  2194.436432  0.041556  0.041556  0.057196 -0.000404     ...       \n",
+       "898  2292.000000  0.000000  0.000000  0.351335  0.001304     ...       \n",
+       "899  2198.718445  0.072085  0.072085 -0.069529  0.000512     ...       \n",
+       "900  2297.000000  0.000000  0.000000  0.527048  0.001467     ...       \n",
+       "901  2050.385132  0.077120  0.077120  0.152207 -0.001089     ...       \n",
+       "902  2180.000000  0.000000  0.000000  0.300264 -0.005505     ...       \n",
+       "903  4428.867554  0.046734  0.046734  0.130090 -0.000687     ...       \n",
+       "904  4087.000000  0.000000  0.000000  0.311524  0.112654     ...       \n",
+       "905   327.482178  0.029037  0.029037  0.065413 -0.000619     ...       \n",
+       "906   864.000000  0.000000  0.000000  0.644605 -0.157313     ...       \n",
+       "907  2711.870987  0.019142  0.019142 -0.126211  0.000823     ...       \n",
+       "908  2706.000000  0.000000  0.000000  0.841690  0.038539     ...       \n",
+       "909  4263.836304  0.052744  0.052744 -0.226624  0.001462     ...       \n",
+       "910  3961.000000  0.000000  0.000000  0.928108  0.156281     ...       \n",
+       "911   529.157959  0.082464  0.082464 -0.190923  0.001432     ...       \n",
+       "912  1014.000000  0.000000  0.000000  0.987080 -0.150590     ...       \n",
+       "913  2569.342466  0.042625  0.042625  0.017827 -0.000155     ...       \n",
+       "914  2592.000000  0.000000  0.000000  0.809740  0.032106     ...       \n",
+       "915  2722.018570  0.404660  0.404660 -0.081565  0.000531     ...       \n",
+       "916  2713.000000  0.000000  0.000000  0.934600  0.046266     ...       \n",
+       "917  4200.053345  0.048931  0.048931 -0.186676  0.001189     ...       \n",
+       "918  3907.000000  0.000000  0.000000  1.015781  0.174187     ...       \n",
+       "\n",
+       "           known    lat_Y_North   long_X_East           ht  sig0 sig1  \\\n",
+       "0           Free  128580.921397  3.391207e+06  5990.723423   0.0  0.0   \n",
+       "1           Free  128580.921397  3.391207e+06  5990.723423   0.0  0.0   \n",
+       "2           Free  128580.921397  3.391207e+06  5990.723423   0.0  0.0   \n",
+       "3           Free  128580.921397  3.391207e+06  5990.723423   0.0  0.0   \n",
+       "4           Free  128441.872032  3.391210e+06  5983.451630   0.0  0.0   \n",
+       "5           Free  128441.872032  3.391210e+06  5983.451630   0.0  0.0   \n",
+       "6           Free  128441.872032  3.391210e+06  5983.451630   0.0  0.0   \n",
+       "7           Free  128441.872032  3.391210e+06  5983.451630   0.0  0.0   \n",
+       "8    Constrained  128549.488243  3.391178e+06  6191.069521   0.0  0.0   \n",
+       "9    Constrained  128549.488243  3.391178e+06  6191.069521   0.0  0.0   \n",
+       "10   Constrained  128549.488243  3.391178e+06  6191.069521   0.0  0.0   \n",
+       "11   Constrained  128549.488243  3.391178e+06  6191.069521   0.0  0.0   \n",
+       "12   Constrained  128406.803199  3.391150e+06  6176.347780   0.0  0.0   \n",
+       "13   Constrained  128406.803199  3.391150e+06  6176.347780   0.0  0.0   \n",
+       "14   Constrained  128406.803199  3.391150e+06  6176.347780   0.0  0.0   \n",
+       "15   Constrained  128406.803199  3.391150e+06  6176.347780   0.0  0.0   \n",
+       "16          Free  128517.312267  3.391209e+06  6419.274479   0.0  0.0   \n",
+       "17          Free  128517.312267  3.391209e+06  6419.274479   0.0  0.0   \n",
+       "18          Free  128517.312267  3.391209e+06  6419.274479   0.0  0.0   \n",
+       "19          Free  128517.312267  3.391209e+06  6419.274479   0.0  0.0   \n",
+       "20          Free  128377.511876  3.391240e+06  6403.215835   0.0  0.0   \n",
+       "21          Free  128377.511876  3.391240e+06  6403.215835   0.0  0.0   \n",
+       "22          Free  128377.511876  3.391240e+06  6403.215835   0.0  0.0   \n",
+       "23          Free  128377.511876  3.391240e+06  6403.215835   0.0  0.0   \n",
+       "24   Constrained  128482.050675  3.391230e+06  6084.815920   0.0  0.0   \n",
+       "25   Constrained  128482.050675  3.391230e+06  6084.815920   0.0  0.0   \n",
+       "26   Constrained  128482.050675  3.391230e+06  6084.815920   0.0  0.0   \n",
+       "27   Constrained  128482.050675  3.391230e+06  6084.815920   0.0  0.0   \n",
+       "28   Constrained  128427.996026  3.391164e+06  6303.984552   0.0  0.0   \n",
+       "29   Constrained  128427.996026  3.391164e+06  6303.984552   0.0  0.0   \n",
+       "..           ...            ...           ...          ...   ...  ...   \n",
+       "889         Free  128675.128168  3.391229e+06  6084.840832   0.0  0.0   \n",
+       "890         Free  128675.128168  3.391229e+06  6084.840832   0.0  0.0   \n",
+       "891         Free  128588.618783  3.391240e+06  6187.548595   0.0  0.0   \n",
+       "892         Free  128588.618783  3.391240e+06  6187.548595   0.0  0.0   \n",
+       "893         Free  128739.414854  3.391176e+06  6517.800017   0.0  0.0   \n",
+       "894         Free  128739.414854  3.391176e+06  6517.800017   0.0  0.0   \n",
+       "895         Free  128587.804938  3.391218e+06  6491.728748   0.0  0.0   \n",
+       "896         Free  128587.804938  3.391218e+06  6491.728748   0.0  0.0   \n",
+       "897         Free  128582.668391  3.391247e+06  6516.654553   0.0  0.0   \n",
+       "898         Free  128582.668391  3.391247e+06  6516.654553   0.0  0.0   \n",
+       "899         Free  128573.104159  3.391278e+06  6585.004506   0.0  0.0   \n",
+       "900         Free  128573.104159  3.391278e+06  6585.004506   0.0  0.0   \n",
+       "901         Free  128585.799796  3.391282e+06  6579.103533   0.0  0.0   \n",
+       "902         Free  128585.799796  3.391282e+06  6579.103533   0.0  0.0   \n",
+       "903         Free  128400.976264  3.391302e+06  6568.745835   0.0  0.0   \n",
+       "904         Free  128400.976264  3.391302e+06  6568.745835   0.0  0.0   \n",
+       "905         Free  128674.800478  3.391337e+06  6888.154986   0.0  0.0   \n",
+       "906         Free  128674.800478  3.391337e+06  6888.154986   0.0  0.0   \n",
+       "907         Free  128492.690578  3.391346e+06  6862.561805   0.0  0.0   \n",
+       "908         Free  128492.690578  3.391346e+06  6862.561805   0.0  0.0   \n",
+       "909         Free  128371.105466  3.391324e+06  6850.789846   0.0  0.0   \n",
+       "910         Free  128371.105466  3.391324e+06  6850.789846   0.0  0.0   \n",
+       "911         Free  128648.482025  3.391346e+06  6961.778315   0.0  0.0   \n",
+       "912         Free  128648.482025  3.391346e+06  6961.778315   0.0  0.0   \n",
+       "913         Free  128488.835196  3.391355e+06  6963.148746   0.0  0.0   \n",
+       "914         Free  128488.835196  3.391355e+06  6963.148746   0.0  0.0   \n",
+       "915         Free  128473.854659  3.391356e+06  6982.122470   0.0  0.0   \n",
+       "916         Free  128473.854659  3.391356e+06  6982.122470   0.0  0.0   \n",
+       "917         Free  128360.041397  3.391348e+06  6960.718265   0.0  0.0   \n",
+       "918         Free  128360.041397  3.391348e+06  6960.718265   0.0  0.0   \n",
+       "\n",
+       "         sig2       res0       res1        res2  \n",
+       "0    4.000000  49.937532 -24.131687  639.699743  \n",
+       "1    4.000000  49.937532 -24.131687  639.699743  \n",
+       "2    4.000000  49.937532 -24.131687  639.699743  \n",
+       "3    4.000000  49.937532 -24.131687  639.699743  \n",
+       "4    5.950495  31.803679   2.604902  626.707206  \n",
+       "5    5.950495  31.803679   2.604902  626.707206  \n",
+       "6    5.950495  31.803679   2.604902  626.707206  \n",
+       "7    5.950495  31.803679   2.604902  626.707206  \n",
+       "8    2.000000  21.103941  14.908475    0.160007  \n",
+       "9    2.000000  21.103941  14.908475    0.160007  \n",
+       "10   2.000000  21.103941  14.908475    0.160007  \n",
+       "11   2.000000  21.103941  14.908475    0.160007  \n",
+       "12   2.000000   3.108341  37.727723   -0.091345  \n",
+       "13   2.000000   3.108341  37.727723   -0.091345  \n",
+       "14   2.000000   3.108341  37.727723   -0.091345  \n",
+       "15   2.000000   3.108341  37.727723   -0.091345  \n",
+       "16   5.000000 -12.889142  51.259099  357.103948  \n",
+       "17   5.000000 -12.889142  51.259099  357.103948  \n",
+       "18   5.000000 -12.889142  51.259099  357.103948  \n",
+       "19   5.000000 -12.889142  51.259099  357.103948  \n",
+       "20   3.121641 -31.093062  66.736732  356.122636  \n",
+       "21   3.121641 -31.093062  66.736732  356.122636  \n",
+       "22   3.121641 -31.093062  66.736732  356.122636  \n",
+       "23   3.121641 -31.093062  66.736732  356.122636  \n",
+       "24   2.000000  24.733822  11.439326   -0.027924  \n",
+       "25   2.000000  24.733822  11.439326   -0.027924  \n",
+       "26   2.000000  24.733822  11.439326   -0.027924  \n",
+       "27   2.000000  24.733822  11.439326   -0.027924  \n",
+       "28   2.000000 -10.407533  49.477076   -0.403329  \n",
+       "29   2.000000 -10.407533  49.477076   -0.403329  \n",
+       "..        ...        ...        ...         ...  \n",
+       "889  0.000000  75.767937 -35.657850  644.763531  \n",
+       "890  0.000000  75.767937 -35.657850  644.763531  \n",
+       "891  0.000000  50.184150  -4.046041  588.777387  \n",
+       "892  0.000000  50.184150  -4.046041  588.777387  \n",
+       "893  0.000000  28.483787  17.892238  313.761748  \n",
+       "894  0.000000  28.483787  17.892238  313.761748  \n",
+       "895  0.000000   9.182400  30.510452  320.356309  \n",
+       "896  0.000000   9.182400  30.510452  320.356309  \n",
+       "897  0.000000   4.852962  33.470674  288.119520  \n",
+       "898  0.000000   4.852962  33.470674  288.119520  \n",
+       "899  0.000000  -6.163682  40.349016  193.553359  \n",
+       "900  0.000000  -6.163682  40.349016  193.553359  \n",
+       "901  0.000000  -3.413067  38.993002  204.076131  \n",
+       "902  0.000000  -3.413067  38.993002  204.076131  \n",
+       "903  0.000000 -30.567305  50.125398  188.794152  \n",
+       "904  0.000000 -30.567305  50.125398  188.794152  \n",
+       "905  0.000000 -30.549414  71.615979 -335.034008  \n",
+       "906  0.000000 -30.549414  71.615979 -335.034008  \n",
+       "907  0.000000 -58.842156  56.249779 -304.048490  \n",
+       "908  0.000000 -58.842156  56.249779 -304.048490  \n",
+       "909  0.000000 -78.122640  47.514722 -295.531269  \n",
+       "910  0.000000 -78.122640  47.514722 -295.531269  \n",
+       "911  0.000000 -44.796170  78.481424 -503.347488  \n",
+       "912  0.000000 -44.796170  78.481424 -503.347488  \n",
+       "913  0.000000 -74.111380  58.509410 -523.498450  \n",
+       "914  0.000000 -74.111380  58.509410 -523.498450  \n",
+       "915  0.000000 -79.631963  56.827213 -568.949425  \n",
+       "916  0.000000 -79.631963  56.827213 -568.949425  \n",
+       "917  0.000000 -97.331379  41.418386 -531.562532  \n",
+       "918  0.000000 -97.331379  41.418386 -531.562532  \n",
+       "\n",
+       "[919 rows x 25 columns]"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
-    "@singledispatch\n",
-    "def read_ipf(arg):\n",
-    "    return str(arg)\n",
-    "# new_df['known'] = new_df.apply(known, axis=1)\n",
+    "def socet2isis(atf_file, cube_path):\n",
+    "    atf_dict = read_atf(get_path(atf_file))\n",
     "\n",
-    "@read_ipf.register(str)\n",
-    "def read_ipf_str(input_data):\n",
-    "    \"\"\"\n",
-    "    Read a socet ipf file into a pandas data frame\n",
+    "    gpf_file = os.path.join(atf_dict['PATH'], atf_dict['GP_FILE']);\n",
+    "    ipf_list = [os.path.join(atf_dict['PATH'], i) for i in atf_dict['IMAGE_IPF']]\n",
     "\n",
-    "    Parameters\n",
-    "    ----------\n",
-    "    input_data : str\n",
-    "                 path to the an input data file\n",
+    "    gpf_df = read_gpf(gpf_file)\n",
+    "    ipf_df = read_ipf(ipf_list)\n",
     "\n",
-    "    Returns\n",
-    "    -------\n",
-    "    df : pd.DataFrame\n",
-    "         containing the ipf data with appropriate column names and indices\n",
-    "    \"\"\"\n",
+    "    point_diff = ipf_df.index.difference(gpf_df.index)\n",
     "\n",
-    "    # Check that the number of rows is matching the expected number\n",
-    "    with open(input_data, 'r') as f:\n",
-    "        for i, l in enumerate(f):\n",
-    "            if i == 1:\n",
-    "                cnt = int(l)\n",
-    "            elif i == 2:\n",
-    "                col = l\n",
-    "                break\n",
-    "                \n",
-    "    columns = np.genfromtxt(input_data, skip_header=2, dtype='unicode',\n",
-    "                            max_rows = 1, delimiter = ',')\n",
+    "    if len(point_diff) != 0:\n",
+    "        warnings.warn(\"The following points found in ipf files missing from gpf file: \\n\\n{}. \\\n",
+    "                      \\n\\nContinuing, but these points will be missing from the control network\".format(list(point_diff)))\n",
     "\n",
-    "    # TODO: Add unicode conversion\n",
-    "    d = [line.split() for line in open(input_data, 'r')]\n",
-    "    d = np.hstack(np.array(d[3:]))\n",
-    "    \n",
-    "    d = d.reshape(-1, 12)\n",
-    "    \n",
-    "    df = pd.DataFrame(d, columns=columns)\n",
-    "    file = os.path.split(os.path.splitext(input_data)[0])[1]\n",
-    "    df['ipf_file'] = pd.Series(np.full((len(df['pt_id'])), file), index = df.index)\n",
+    "    socet_df = ipf_df.merge(gpf_df, left_on = 'pt_id', right_on = 'point_id')\n",
     "\n",
-    "    assert int(cnt) == len(df), 'Dataframe length {} does not match point length {}.'.format(int(cnt), len(df))\n",
+    "    apply_transformation(atf_dict, socet_df)\n",
     "    \n",
-    "    # Soft conversion of numeric types to numerics, allows str in first col for point_id\n",
-    "    df = df.apply(pd.to_numeric, errors='ignore')\n",
-    "\n",
-    "    return df\n",
-    "\n",
-    "@read_ipf.register(list)\n",
-    "def read_ipf_list(input_data_list):\n",
-    "    \"\"\"\n",
-    "    Read a socet ipf file into a pandas data frame\n",
-    "\n",
-    "    Parameters\n",
-    "    ----------\n",
-    "    input_data_list : list\n",
-    "                      list of paths to the a set of input data files\n",
-    "\n",
-    "    Returns\n",
-    "    -------\n",
-    "    df : pd.DataFrame\n",
-    "         containing the ipf data with appropriate column names and indices\n",
-    "    \"\"\"\n",
-    "    frames = []\n",
-    "\n",
-    "    for input_file in input_data_list:\n",
-    "        frames.append(read_ipf(input_file))\n",
-    "\n",
-    "    df = pd.concat(frames)\n",
-    "\n",
-    "    return df"
+    "    return socet_df\n",
+    "    \n",
+    "socet2isis('CTX_Athabasca_Middle_step0.atf', 'Banana')"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
@@ -313,7 +2011,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.6.4"
+   "version": "3.6.3"
   }
  },
  "nbformat": 4,
-- 
GitLab