From 09b691dc8b01bb40394213b2542d46a178f556c9 Mon Sep 17 00:00:00 2001
From: jlaura <jlaura@asu.edu>
Date: Thu, 1 Feb 2018 14:46:20 -0700
Subject: [PATCH] Updates to the GPF reader/writer (#21)

* Adds prototype socet gpf read from @thareUSGS

* Adds test to gpf reader

* Adds length assertion and logic for dynamic cols

* removed static struct arr

* Finishing the merge cleanly

* removed assertTrue

* Fixes test to compare in/out files.
---
 plio/examples/SocetGXP/out_InSightE08_XW.gpf  | 803 ------------------
 .../Untitled-checkpoint.ipynb                 |   6 -
 plio/io/io_gpf.py                             |  14 +-
 plio/io/tests/test_gpf.py                     |  34 -
 plio/io/tests/test_io_gpf.py                  |  45 +
 5 files changed, 52 insertions(+), 850 deletions(-)
 delete mode 100644 plio/examples/SocetGXP/out_InSightE08_XW.gpf
 delete mode 100644 plio/io/.ipynb_checkpoints/Untitled-checkpoint.ipynb
 delete mode 100644 plio/io/tests/test_gpf.py
 create mode 100644 plio/io/tests/test_io_gpf.py

diff --git a/plio/examples/SocetGXP/out_InSightE08_XW.gpf b/plio/examples/SocetGXP/out_InSightE08_XW.gpf
deleted file mode 100644
index 2e9cc29..0000000
--- a/plio/examples/SocetGXP/out_InSightE08_XW.gpf
+++ /dev/null
@@ -1,803 +0,0 @@
-GROUND POINT FILE
-160
-point_id,stat,known,lat_Y_North,long_X_East,ht,sig(3),res(3)
-1 1 1
-0.08538133869186999         2.38013146162178         -2697.2374469465
-0.0 0.0 1.707214
-16.348041000000002 -13.917623 -0.151001
-
-2 1 1
-0.08508542650082002         2.3808135855714703         -2702.0
-0.0 0.0 1.0
-15.983285999999998 -16.869508 0.103341
-
-3 1 1
-0.08626480095809         2.3870838392611         -2714.16003756809
-0.0 0.0 3.828854
-12.831839 -34.360639 -2.2058459999999998
-
-4 1 1
-0.08568717143105001         2.38669347579564         -2720.3873574332
-0.0 0.0 2.06082
-13.102864 -34.063651 0.334757
-
-5 1 1
-0.08077770259688         2.3838894311434102         -2692.00307359153
-0.0 0.0 2.768034
-15.876249 -23.172029000000002 -0.461974
-
-6 1 1
-0.08125893072767999         2.38445721412659         -2691.71435885471
-0.0 0.0 1.707214
-15.410701999999999 -25.944881 0.225806
-
-7 1 1
-0.07483240230363         2.3814261265746297         -2668.18002134863
-0.0 0.0 1.353607
-17.789075 -15.211119 0.087284
-
-8 1 1
-0.07443515640509         2.38212146862         -2664.7747769489906
-0.0 0.0 1.353607
-17.273365 -18.001185999999997 0.323137
-
-9 1 1
-0.07495055817805         2.3884619283655804         -2700.63760007568
-0.0 0.0 1.707214
-14.324904 -35.58345 -0.288152
-
-10 1 1
-0.07519371955078         2.38757259631679         -2694.18565786937
-0.0 0.0 1.353607
-14.771196 -33.010921 -0.08018600000000001
-
-11 1 1
-0.07010083277386         2.3849213916922003         -2668.62598527203
-0.0 0.0 2.414427
-15.933368 -22.780039000000002 -0.579354
-
-12 1 1
-0.06957324833251         2.3853276647149904         -2670.6045801106907
-0.0 0.0 1.707214
-15.773589999999999 -23.804103 -0.330565
-
-13 1 1
-0.06563711957712         2.3825780897637503         -2652.6543697460706
-0.0 0.0 1.707214
-16.419539 -15.919385 0.250239
-
-14 1 1
-0.0664454678652         2.38304264645782         -2658.85707321604
-0.0 0.0 1.353607
-16.313481 -17.239438 0.11514
-
-15 1 1
-0.06649272348884999         2.38951682947442         -2692.0
-0.0 0.0 1.0
-12.517966 -36.540841 -0.063341
-
-16 1 1
-0.06706972009678         2.38873585114457         -2692.0
-0.0 0.0 1.0
-13.078013 -34.602107000000004 0.027464999999999996
-
-D18_034427_1842_XN_04N223W_28 1 0
-0.06642563152224999         2.38304560848777         -2652.7379931980295
-0.0 0.0 0.0
-16.347926 -16.786457000000002 202.26425
-
-D18_034427_1842_XN_04N223W_29 1 0
-0.06701245416812         2.38319472448874         -2655.8936787285143
-0.0 0.0 0.0
-16.345939 -17.39285 202.351222
-
-D18_034427_1842_XN_04N223W_30 1 0
-0.06714286922356         2.38459540070318         -2666.2181217736006
-0.0 0.0 0.0
-15.56071 -21.543285 206.451357
-
-D18_034427_1842_XN_04N223W_31 1 0
-0.06699131624733         2.38537597452635         -2667.917382767097
-0.0 0.0 0.0
-15.129148999999998 -23.909211 208.666933
-
-D18_034427_1842_XN_04N223W_32 1 0
-0.0668897961665         2.38667024343657         -2676.4753153168867
-0.0 0.0 0.0
-14.271489 -27.786033000000003 212.56778599999998
-
-D18_034427_1842_XN_04N223W_33 1 0
-0.06725333266900001         2.3873695967267903         -2680.2541795701445
-0.0 0.0 0.0
-13.938915 -30.138825 214.17239500000002
-
-D18_034427_1842_XN_04N223W_34 1 0
-0.06734814823241         2.38802769571932         -2689.8761881734445
-0.0 0.0 0.0
-13.586741 -32.256271999999996 215.92250499999997
-
-D18_034427_1842_XN_04N223W_37 1 0
-0.06827861281198999         2.38281829913636         -2654.651058159914
-0.0 0.0 0.0
-16.734595000000002 -16.750685 200.728446
-
-D18_034427_1842_XN_04N223W_38 1 0
-0.06785042142429         2.38358220068826         -2655.152592163299
-0.0 0.0 0.0
-16.371177 -18.807863 203.084628
-
-D18_034427_1842_XN_04N223W_39 1 0
-0.06848531606765         2.3842691958979         -2665.4967618571454
-0.0 0.0 0.0
-16.028295 -21.041457 204.98470600000002
-
-D18_034427_1842_XN_04N223W_40 1 0
-0.06835459149418         2.38523660668123         -2670.27617625958
-0.0 0.0 0.0
-15.360716 -23.872982999999998 207.75411599999998
-
-D18_034427_1842_XN_04N223W_41 1 0
-0.06848765704014         2.3864536869340096         -2675.9421768906273
-0.0 0.0 0.0
-14.686125 -27.652577 211.133186
-
-D18_034427_1842_XN_04N223W_42 1 0
-0.06853528389166999         2.3871649779555         -2677.442308160816
-0.0 0.0 0.0
-14.326697 -29.917028000000002 213.039612
-
-D18_034427_1842_XN_04N223W_43 1 0
-0.06812356483517999         2.3881815525258796         -2687.8001243238173
-0.0 0.0 0.0
-13.665585 -32.992428000000004 215.977587
-
-D18_034427_1842_XN_04N223W_46 1 0
-0.06910953643377         2.38271848114252         -2656.715912874613
-0.0 0.0 0.0
-17.002323 -16.719943 199.939328
-
-D18_034427_1842_XN_04N223W_47 1 0
-0.06912052519181         2.38317372399279         -2659.6259584890695
-0.0 0.0 0.0
-16.7234 -18.02816 201.397423
-
-D18_034427_1842_XN_04N223W_48 1 0
-0.06921287603448         2.38370782097352         -2662.599411605864
-0.0 0.0 0.0
-16.459808 -19.611708 202.954937
-
-D18_034427_1842_XN_04N223W_49 1 0
-0.06941422430034         2.38536468483276         -2676.429047836165
-0.0 0.0 0.0
-15.563282000000001 -24.595201 207.76693799999998
-
-D18_034427_1842_XN_04N223W_50 1 0
-0.06972642994167999         2.38581920841575         -2685.039536273431
-0.0 0.0 0.0
-15.397463 -26.084508 208.858854
-
-D18_034427_1842_XN_04N223W_51 1 0
-0.06934741459200999         2.38710391506758         -2684.774432824858
-0.0 0.0 0.0
-14.491313 -29.952594 212.70436400000003
-
-D18_034427_1842_XN_04N223W_52 1 0
-0.06942432539212         2.38733818383773         -2685.8420333989134
-0.0 0.0 0.0
-14.360056 -30.699132000000002 213.376721
-
-D18_034427_1842_XN_04N223W_55 1 0
-0.07042311025238         2.38254966475176         -2652.3577409452973
-0.0 0.0 0.0
-17.241636 -16.68754 198.783423
-
-D18_034427_1842_XN_04N223W_56 1 0
-0.0710517242282         2.38321132895148         -2652.7501214722947
-0.0 0.0 0.0
-16.922747 -18.710957999999998 200.57691200000002
-
-D18_034427_1842_XN_04N223W_57 1 0
-0.07056080973178999         2.3835543556055803         -2660.4572360640773
-0.0 0.0 0.0
-16.751189 -19.618982 201.807268
-
-D18_034427_1842_XN_04N223W_58 1 0
-0.07096187128716999         2.38487692065399         -2677.687606349641
-0.0 0.0 0.0
-16.047975 -23.608642 205.74328500000001
-
-D18_034427_1842_XN_04N223W_59 1 0
-0.07108077399242         2.3859380288014         -2675.2442799303685
-0.0 0.0 0.0
-15.485341 -26.866797 208.752177
-
-D18_034427_1842_XN_04N223W_60 1 0
-0.07115124246621         2.38657444101636         -2682.8816229984386
-0.0 0.0 0.0
-15.132392000000001 -28.854257 210.517027
-
-D18_034427_1842_XN_04N223W_61 1 0
-0.07077295848888         2.38786580634713         -2696.8819496211686
-0.0 0.0 0.0
-14.357418 -32.808412 214.19962
-
-D18_034427_1842_XN_04N223W_64 1 0
-0.07148971840912         2.38247259758759         -2620.89438652133
-0.0 0.0 0.0
-17.305942 -16.7511 198.286489
-
-D18_034427_1842_XN_04N223W_65 1 0
-0.07202055149403         2.38255638944198         -2615.5720527991343
-0.0 0.0 0.0
-17.268113 -17.157173 198.467782
-
-D18_034427_1842_XN_04N223W_66 1 0
-0.07216060168744001         2.3838290740342596         -2656.665119201533
-0.0 0.0 0.0
-16.631242 -20.879829 202.222367
-
-D18_034427_1842_XN_04N223W_67 1 0
-0.07232352446967999         2.38470773377977         -2668.9659520065584
-0.0 0.0 0.0
-16.209736 -23.514046 204.924653
-
-D18_034427_1842_XN_04N223W_68 1 0
-0.07269790506316001         2.38565779012721         -2678.9349270785033
-0.0 0.0 0.0
-15.710246 -26.538726 207.417412
-
-D18_034427_1842_XN_04N223W_69 1 0
-0.07199351427375         2.3865242686286203         -2678.942698191817
-0.0 0.0 0.0
-15.232723000000002 -28.952780999999998 210.11350699999997
-
-D18_034427_1842_XN_04N223W_70 1 0
-0.07287457185955999         2.38740913225819         -2689.383386504829
-0.0 0.0 0.0
-14.790548999999999 -32.056628 212.276935
-
-D18_034427_1842_XN_04N223W_73 1 0
-0.07282103502438         2.38224105347397         -2658.9086849075047
-0.0 0.0 0.0
-17.508243 -16.49175 197.259326
-
-D18_034427_1842_XN_04N223W_74 1 0
-0.0736051230051         2.3823626596671         -2653.237004469596
-0.0 0.0 0.0
-17.380384 -17.141116 197.206208
-
-D18_034427_1842_XN_04N223W_75 1 0
-0.07379170560024001         2.38384099669321         -2672.8644993645244
-0.0 0.0 0.0
-16.64967 -21.459742000000002 201.683498
-
-D18_034427_1842_XN_04N223W_76 1 0
-0.07382062370162         2.38409005492065         -2675.049868637645
-0.0 0.0 0.0
-16.539460000000002 -22.201383 202.42708100000002
-
-D18_034427_1842_XN_04N223W_77 1 0
-0.07373556771058         2.38535831527985         -2681.031323697884
-0.0 0.0 0.0
-15.794412 -25.889234 206.354471
-
-D18_034427_1842_XN_04N223W_78 1 0
-0.07413489106961998         2.38652925036891         -2689.011926074597
-0.0 0.0 0.0
-15.311494 -29.705488 209.40125700000002
-
-D18_034427_1842_XN_04N223W_79 1 0
-0.07424012184321001         2.38724097889804         -2692.0540176576637
-0.0 0.0 0.0
-14.971244 -31.978009000000004 211.354569
-
-D18_034427_1842_XN_04N223W_82 1 0
-0.07465980169223         2.38199709172594         -2660.382836778674
-0.0 0.0 0.0
-17.458551999999997 -16.379278 195.823681
-
-D18_034427_1842_XN_04N223W_83 1 0
-0.07480666965683999         2.38294587119221         -2662.107046549235
-0.0 0.0 0.0
-17.012866 -19.120053 198.73936
-
-D18_034427_1842_XN_04N223W_84 1 0
-0.07486208263203999         2.3834573505507         -2665.6739994721297
-0.0 0.0 0.0
-16.754496 -20.610599 200.295491
-
-D18_034427_1842_XN_04N223W_85 1 0
-0.07524574930831         2.38443916455468         -3067.0699559090967
-0.0 0.0 0.0
-16.388751 -23.622301999999998 203.165592
-
-D18_034427_1842_XN_04N223W_86 1 0
-0.07532253697328001         2.38497620501387         -2562.067272943178
-0.0 0.0 0.0
-16.118722 -25.275464000000003 204.691139
-
-D18_034427_1842_XN_04N223W_87 1 0
-0.07541028942         2.38609511438821         -2689.0762846417138
-0.0 0.0 0.0
-15.566456 -28.711112 207.924363
-
-D18_034427_1842_XN_04N223W_88 1 0
-0.07502083927259         2.38712713096084         -2686.0309107394964
-0.0 0.0 0.0
-14.974822 -31.788203999999997 210.917769
-
-D18_034427_1842_XN_04N223W_91 1 0
-0.07544271458467         2.38190763446656         -2663.1885343123454
-0.0 0.0 0.0
-17.530485000000002 -16.373877 195.285223
-
-D18_034427_1842_XN_04N223W_92 1 0
-0.07609298537421001         2.38284082344542         -2669.991112381614
-0.0 0.0 0.0
-16.981026 -19.17163 198.221173
-
-D18_034427_1842_XN_04N223W_93 1 0
-0.07569262450294999         2.3835948505035898         -2664.363012905885
-0.0 0.0 0.0
-16.725125 -21.260144 200.48741
-
-D18_034427_1842_XN_04N223W_94 1 0
-0.07568183382181         2.38386104647574         -2638.070608008627
-0.0 0.0 0.0
-16.59471 -22.044769 201.26955900000002
-
-D18_034427_1842_XN_04N223W_95 1 0
-0.07643679545117         2.3855276120427797         -2690.565595600588
-0.0 0.0 0.0
-15.675845 -27.23565 206.195255
-
-D18_034427_1842_XN_04N223W_96 1 0
-0.07623428585877999         2.3860131459160296         -2694.2605774758485
-0.0 0.0 0.0
-15.544069 -28.698193 207.536093
-
-D18_034427_1842_XN_04N223W_97 1 0
-0.07631737925585001         2.3869597835395697         -2686.270688960265
-0.0 0.0 0.0
-15.10268 -31.678234000000003 210.172179
-
-D18_034427_1842_XN_04N223W_100 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_101 1 0
-0.07710648816635         2.38244666710461         -2674.757113262216
-0.0 0.0 0.0
-17.175873 -18.333013 196.741651
-
-D18_034427_1842_XN_04N223W_102 1 0
-0.07688652201011001         2.38274290176313         -2677.261035660838
-0.0 0.0 0.0
-17.020941 -19.135099 197.73838500000002
-
-D18_034427_1842_XN_04N223W_103 1 0
-0.07698732512291999         2.38368560312227         -2672.8058123786263
-0.0 0.0 0.0
-16.564778 -21.904031 200.604555
-
-D18_034427_1842_XN_04N223W_104 1 0
-0.07725781409317         2.38541132577514         -2678.9729946217353
-0.0 0.0 0.0
-15.715968 -27.142064 205.653107
-
-D18_034427_1842_XN_04N223W_105 1 0
-0.07754700778458999         2.38608822128795         -2685.902288063236
-0.0 0.0 0.0
-15.399054999999999 -29.288173999999998 207.53491599999998
-
-D18_034427_1842_XN_04N223W_106 1 0
-0.07765166471801         2.3868567142168797         -2692.2502406341946
-0.0 0.0 0.0
-15.016573000000001 -31.7198 209.68493999999998
-
-D18_034427_1842_XN_04N223W_109 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_110 1 0
-0.07825589007503         2.3814746987964903         -2682.0369870914246
-0.0 0.0 0.0
-17.451342 -15.97556 193.541643
-
-D18_034427_1842_XN_04N223W_111 1 0
-0.0777909671343         2.3821813449905         -2684.2976023432325
-0.0 0.0 0.0
-17.201581 -17.824538 195.72653799999998
-
-D18_034427_1842_XN_04N223W_112 1 0
-0.07895148846825999         2.3838995301463903         -2680.283464869887
-0.0 0.0 0.0
-16.217541 -23.119061 200.94688100000002
-
-D18_034427_1842_XN_04N223W_113 1 0
-0.07880061008219         2.38515205025766         -2681.0689323457127
-0.0 0.0 0.0
-15.663326000000001 -26.827882000000002 204.67450300000002
-
-D18_034427_1842_XN_04N223W_114 1 0
-0.07912751338502         2.38567210517307         -2680.5241761832826
-0.0 0.0 0.0
-15.318241 -28.522911999999998 206.122973
-
-D18_034427_1842_XN_04N223W_115 1 0
-0.07923871661002001         2.3866391259865094         -2677.9957990335997
-0.0 0.0 0.0
-14.857852 -31.566578999999997 208.84844099999998
-
-D18_034427_1842_XN_04N223W_118 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_119 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_120 1 0
-0.07909884220494999         2.38200418824725         -2690.5838255001736
-0.0 0.0 0.0
-17.126492000000002 -17.662860000000002 195.032487
-
-D18_034427_1842_XN_04N223W_121 1 0
-0.07958915360864001         2.38399498135818         -2686.9644558180007
-0.0 0.0 0.0
-16.080707 -23.583734 201.09865
-
-D18_034427_1842_XN_04N223W_122 1 0
-0.08009889425597999         2.38481478771522         -2679.8546293676136
-0.0 0.0 0.0
-15.554520000000002 -26.148241 203.564889
-
-D18_034427_1842_XN_04N223W_123 1 0
-0.08046910387407001         2.38552789985923         -2672.557670133197
-0.0 0.0 0.0
-15.188120999999999 -28.462495 205.52240700000002
-
-D18_034427_1842_XN_04N223W_124 1 0
-0.08061159131957         2.3864289699855         -2675.5407470919668
-0.0 0.0 0.0
-14.758322 -31.292753 208.080307
-
-D18_034427_1842_XN_04N223W_127 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_128 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_129 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_130 1 0
-0.0807587589976         2.38374817253972         -2692.5341627782573
-0.0 0.0 0.0
-15.903652 -23.15444 200.29195900000002
-
-D18_034427_1842_XN_04N223W_131 1 0
-0.08141052509445         2.3846218021322096         -2690.646176145482
-0.0 0.0 0.0
-15.367770000000002 -25.971438 202.863648
-
-D18_034427_1842_XN_04N223W_132 1 0
-0.0810025822268         2.38538947599592         -2678.6318727962107
-0.0 0.0 0.0
-15.170943 -28.178753999999998 205.07906599999998
-
-D18_034427_1842_XN_04N223W_133 1 0
-0.08107923559935001         2.3863856082821         -2672.625395576906
-0.0 0.0 0.0
-14.625275 -31.282871999999998 207.987084
-
-D18_034427_1842_XN_04N223W_136 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D18_034427_1842_XN_04N223W_137 1 0
-0.08263285059475         2.38133461572435         -2683.0003819636645
-0.0 0.0 0.0
-16.588435999999998 -16.809387 192.530755
-
-D18_034427_1842_XN_04N223W_138 1 0
-0.08279974960992999         2.3825064680589705         -2690.3086972013957
-0.0 0.0 0.0
-16.003621 -20.154424 196.259151
-
-D18_034427_1842_XN_04N223W_139 1 0
-0.08261031901177         2.3835085239362406         -2696.6597455666833
-0.0 0.0 0.0
-15.646648999999998 -23.032201 199.362676
-
-D18_034427_1842_XN_04N223W_140 1 0
-0.08251437752552         2.3847056707278         -2690.2849407961357
-0.0 0.0 0.0
-15.117034 -26.57193 203.05957800000002
-
-D18_034427_1842_XN_04N223W_141 1 0
-0.08252178672164         2.3849717266292303         -2687.889644801681
-0.0 0.0 0.0
-14.987132999999998 -27.369891 203.871116
-
-D18_034427_1842_XN_04N223W_142 1 0
-0.08273138568844         2.38618775838929         -2677.185140199846
-0.0 0.0 0.0
-14.37331 -31.187855 207.33795600000002
-
-D18_034427_1842_XN_04N223W_145 1 0
-0.08314384168538         2.38103274708381         -2675.8459256381375
-0.0 0.0 0.0
-16.548911999999998 -16.154316 191.48131
-
-D18_034427_1842_XN_04N223W_146 1 0
-0.08317744168997         2.3812028045342797         -2677.1145496460754
-0.0 0.0 0.0
-16.473178 -16.631674 192.031276
-
-D18_034427_1842_XN_04N223W_147 1 0
-0.08412341655091         2.3823527317424         -2694.7548330566738
-0.0 0.0 0.0
-15.647117999999999 -20.139863000000002 195.774669
-
-D18_034427_1842_XN_04N223W_148 1 0
-0.08396046283667         2.38332546147269         -2703.6142848311583
-0.0 0.0 0.0
-15.352435 -22.811291 198.892823
-
-D18_034427_1842_XN_04N223W_149 1 0
-0.08382969551064         2.3845423499065603         -2700.1447135786443
-0.0 0.0 0.0
-14.804625 -26.475214 202.404746
-
-D18_034427_1842_XN_04N223W_150 1 0
-0.08415135552261001         2.38500847163554         -2682.707299494345
-0.0 0.0 0.0
-14.501748000000001 -27.899921999999997 203.943382
-
-D18_034427_1842_XN_04N223W_151 1 0
-0.08420659528157001         2.38557536272079         -2709.074688761304
-0.0 0.0 0.0
-14.19581 -29.662759 205.593161
-
-D18_034427_1842_XN_04N223W_154 1 0
-0.08445366128885001         2.38086053908945         -2693.5493187345555
-0.0 0.0 0.0
-16.318131 -16.01231 190.99998200000002
-
-D18_034427_1842_XN_04N223W_155 1 0
-0.08446746372827         2.38108913070666         -2694.488567373283
-0.0 0.0 0.0
-16.202373 -16.637541 191.756412
-
-D18_034427_1842_XN_04N223W_156 1 0
-0.08516972192796002         2.3822109242128597         -2711.8555271208647
-0.0 0.0 0.0
-15.437729000000001 -20.014731 195.299337
-
-D18_034427_1842_XN_04N223W_157 1 0
-0.08531133572734         2.38318096403792         -2714.270351478282
-0.0 0.0 0.0
-14.951564999999999 -22.858547 198.323136
-
-D18_034427_1842_XN_04N223W_158 1 0
-0.08487854784258998         2.3844528838834504         -2715.6725443945274
-0.0 0.0 0.0
-14.556977 -26.474738000000002 202.239417
-
-D18_034427_1842_XN_04N223W_159 1 0
-0.08495335374929999         2.38469780263608         -2716.062106547546
-0.0 0.0 0.0
-14.428042000000001 -27.25546 202.936374
-
-D18_034427_1842_XN_04N223W_160 1 0
-0.08508087148994001         2.38571223426977         -2717.83392672337
-0.0 0.0 0.0
-13.891814000000002 -30.403139000000003 205.89565100000002
-
-D17_033939_1843_XN_04N223W_4 1 0
-0.06625014491544         2.3845841181489797         -2660.090675836453
-0.0 0.0 0.0
-15.424957000000001 -21.243929 206.8327
-
-D17_033939_1843_XN_04N223W_5 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_9 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_13 1 0
-0.06914475802492         2.38849791571965         -2691.9104235633968
-0.0 0.0 0.0
-13.677446 -34.329995000000004 216.544848
-
-D17_033939_1843_XN_04N223W_20 1 0
-0.07092973369266001         2.3876529657743504         -2692.5617023619434
-0.0 0.0 0.0
-14.425557999999999 -32.17475 213.546801
-
-D17_033939_1843_XN_04N223W_21 1 0
-0.07124567527532001         2.3879127853347404         -2698.292857413034
-0.0 0.0 0.0
-14.314792 -33.073778000000004 214.155417
-
-D17_033939_1843_XN_04N223W_25 1 0
-0.07208759676714001         2.3881288650845898         -2688.160938871417
-0.0 0.0 0.0
-14.385124 -34.098183 214.372349
-
-D17_033939_1843_XN_04N223W_29 1 0
-0.07311197710963001         2.38369244257928         -2669.107756395676
-0.0 0.0 0.0
-16.732203 -20.749382 201.564945
-
-D17_033939_1843_XN_04N223W_30 1 0
-0.0733029335397         2.3849744268966804         -2679.8137082315743
-0.0 0.0 0.0
-16.086261999999998 -24.61359 205.332402
-
-D17_033939_1843_XN_04N223W_31 1 0
-0.07330334944136001         2.3873609578731902         -2698.739011087669
-0.0 0.0 0.0
-14.742326 -32.001938 212.12347200000002
-
-D17_033939_1843_XN_04N223W_32 1 0
-0.07338955731292         2.38770126601367         -2689.596935094261
-0.0 0.0 0.0
-14.587051999999998 -33.119208 212.982204
-
-D17_033939_1843_XN_04N223W_36 1 0
-0.07421918441302         2.38784091138244         -2692.7956947421035
-0.0 0.0 0.0
-14.609923 -33.847834999999996 213.049021
-
-D17_033939_1843_XN_04N223W_40 1 0
-0.07549747478812         2.38735704567769         -2691.9114083993104
-0.0 0.0 0.0
-14.872268 -32.659216 211.512798
-
-D17_033939_1843_XN_04N223W_41 1 0
-0.07150549700838         2.38544854881654         -2675.675300437365
-0.0 0.0 0.0
-15.709075 -25.469598 207.255396
-
-D17_033939_1843_XN_04N223W_42 1 0
-0.07475390508307         2.38388723029626         -2661.9128925963423
-0.0 0.0 0.0
-16.603867 -21.807993 201.602253
-
-D17_033939_1843_XN_04N223W_43 1 0
-0.07488635602731         2.38476634230257         -2586.856823673883
-0.0 0.0 0.0
-16.132327 -24.459763 204.19101
-
-D17_033939_1843_XN_04N223W_47 1 0
-0.07695260085138         2.38601355619879         -2683.893964122806
-0.0 0.0 0.0
-15.475879999999998 -28.909091999999998 207.41083899999998
-
-D17_033939_1843_XN_04N223W_48 1 0
-0.07711389195528         2.3875087777435         -2693.8573397565838
-0.0 0.0 0.0
-14.709003 -33.643352 211.559756
-
-D17_033939_1843_XN_04N223W_51 1 0
-0.07754022960353         2.38686883133015         -2692.849990156094
-0.0 0.0 0.0
-14.944764000000001 -31.743209000000004 209.693445
-
-D17_033939_1843_XN_04N223W_54 1 0
-0.07785708479223         2.38253471372513         -2681.754856027621
-0.0 0.0 0.0
-17.079795 -18.841307 196.83134099999998
-
-D17_033939_1843_XN_04N223W_55 1 0
-0.07855211987842001         2.38691355057712         -2690.664971166216
-0.0 0.0 0.0
-14.702332 -32.182937 209.71213600000002
-
-D17_033939_1843_XN_04N223W_57 1 0
-0.07889926268603         2.3823819719857595         -2695.2530979748667
-0.0 0.0 0.0
-16.826406 -18.666045999999998 196.39186
-
-D17_033939_1843_XN_04N223W_58 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_62 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_63 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_66 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_67 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_68 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_69 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_70 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_73 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_74 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_75 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_79 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_82 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_83 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_84 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_85 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
-D17_033939_1843_XN_04N223W_86 0 0
-0.0         0.0         0.0
-0.0 0.0 0.0
-0.0 0.0 0.0
-
diff --git a/plio/io/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/plio/io/.ipynb_checkpoints/Untitled-checkpoint.ipynb
deleted file mode 100644
index 2fd6442..0000000
--- a/plio/io/.ipynb_checkpoints/Untitled-checkpoint.ipynb
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "cells": [],
- "metadata": {},
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/plio/io/io_gpf.py b/plio/io/io_gpf.py
index b5647b0..4d34930 100644
--- a/plio/io/io_gpf.py
+++ b/plio/io/io_gpf.py
@@ -1,4 +1,4 @@
-import numpy as np
+import numpy as np
 import pandas as pd
 
 def read_gpf(input_data):
@@ -43,7 +43,7 @@ def read_gpf(input_data):
     assert int(cnt) == len(df)
 
     return df
-
+
 def save_gpf(df, output_file):
     """
     Write a socet gpf file from a gpf-defined pandas dataframe
@@ -55,7 +55,7 @@ def save_gpf(df, output_file):
 
     output_file : str
                   path to the output data file
-    
+
     Returns
     -------
     int         : success value
@@ -68,10 +68,10 @@ def save_gpf(df, output_file):
     except:
         print ('Unable to open output gpf file: {0}'.format(output_file))
         return 1
-        
+
     #grab number of rows in pandas dataframe
     numpts = len(df)
-    
+
     #Output gpf header
     outGPF.write('GROUND POINT FILE\n')
     outGPF.write('{0}\n'.format(numpts))
@@ -83,6 +83,6 @@ def save_gpf(df, output_file):
         outGPF.write('{0}         {1}         {2}\n'.format(row['lat_y_North'], row['long_X_East'], row['ht']))
         outGPF.write('{0} {1} {2}\n'.format(row['sigma0'], row['sigma1'], row['sigma2']))
         outGPF.write('{0} {1} {2}\n\n'.format(row['res0'], row['res1'], row['res2']))
-        
+
     outGPF.close()
-    return 0
+    return
diff --git a/plio/io/tests/test_gpf.py b/plio/io/tests/test_gpf.py
deleted file mode 100644
index f780d78..0000000
--- a/plio/io/tests/test_gpf.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import numpy as np
-import pandas as pd
-from pandas.util.testing import assert_frame_equal
-
-from plio.io.io_gpf import read_gpf
-from plio.io.io_gpf import save_gpf
-from plio.examples import get_path
-
-import filecmp
-import pytest
-
-@pytest.fixture
-
-def insight_gpf():
-    return get_path('InSightE08_XW.gpf')
-
-def out_insight_gpf():
-    return get_path('out_InSightE08_XW.gpf')
-
-@pytest.fixture()
-def insight_expected():
-    return pd.read_csv(get_path('InSightE08_XW.csv'))
-
-@pytest.mark.parametrize('gpf, expected', [(insight_gpf(),insight_expected())])
-def test_read_gfp(gpf, expected):
-    df = read_gpf(gpf)
-    assert_frame_equal(df, expected)
-
-@pytest.mark.parametrize('gpf, out_gpf', [(insight_gpf(),out_insight_gpf())])
-def test_write_gfp(gpf, out_gpf):
-    df = read_gpf(gpf)
-    val = save_gpf(df, out_gpf)
-    assertTrue(filecmp.cmp(gpf, out_gpf, shallow=True), "save_gpf does not create an equal file.")
-
diff --git a/plio/io/tests/test_io_gpf.py b/plio/io/tests/test_io_gpf.py
new file mode 100644
index 0000000..d9752c9
--- /dev/null
+++ b/plio/io/tests/test_io_gpf.py
@@ -0,0 +1,45 @@
+import numpy as np
+import pandas as pd
+from pandas.util.testing import assert_frame_equal
+
+from plio.io.io_gpf import read_gpf
+from plio.io.io_gpf import save_gpf
+from plio.examples import get_path
+
+import pytest
+
+@pytest.fixture
+def insight_gpf():
+    return get_path('InSightE08_XW.gpf')
+
+@pytest.fixture()
+def insight_expected():
+    return pd.read_csv(get_path('InSightE08_XW.csv'))
+
+@pytest.mark.parametrize('gpf, expected', [(insight_gpf(),insight_expected())])
+def test_read_gfp(gpf, expected):
+    df = read_gpf(gpf)
+    assert_frame_equal(df, expected)
+
+@pytest.mark.parametrize('gpf', [(insight_gpf())])
+def test_write_gpf(gpf):
+    """
+    We test by manually comparing files and not using filecmp so that we
+    are not testing float point precision differences, e.g. 0.0 == 0.00000000.
+    """
+    df = read_gpf(gpf)
+    save_gpf(df, 'out.gpf')
+
+    with open(gpf) as f:
+        fl = f.readlines()
+
+    with open('out.gpf') as f:
+        fs = f.readlines()
+
+    # Check that the header is the same
+    for i in range(3):
+        assert fl[i] == fs[i]
+
+    truth_arr = np.genfromtxt(gpf, skip_header=3)
+    test_arr = np.genfromtxt('out.gpf', skip_header=3)
+    np.testing.assert_array_almost_equal(truth_arr, test_arr)
-- 
GitLab