Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
Plio
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
aflab
astrogeology
Plio
Commits
a14410e6
Commit
a14410e6
authored
6 years ago
by
Adam Paquette
Browse files
Options
Downloads
Patches
Plain Diff
Modifiction to ipf_read and added test.
parent
aed1b45a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
plio/examples/SocetSet/P20_008845_1894_XN_09N203W.csv
+122
-0
122 additions, 0 deletions
plio/examples/SocetSet/P20_008845_1894_XN_09N203W.csv
plio/io/io_bae.py
+35
-75
35 additions, 75 deletions
plio/io/io_bae.py
plio/io/tests/test_io_bae.py
+24
-10
24 additions, 10 deletions
plio/io/tests/test_io_bae.py
with
181 additions
and
85 deletions
plio/examples/SocetSet/P20_008845_1894_XN_09N203W.csv
0 → 100644
+
122
−
0
View file @
a14410e6
pt_id,val,fid_val,no_obs,l.,s.,sig_l,sig_s,res_l,res_s,fid_x,fid_y
1_8344_8845_4r,1,0,0,-4058.982422,-2318.0107420000004,0.0,0.0,-0.062556,-0.21471300000000001,0.0,0.0
2_8344_8845_4r,1,0,0,-3969.065186,-606.849243,0.0,0.0,0.22866,0.105249,0.0,0.0
3_8344_8845_4r_mt_z,1,0,0,-1019.7390140000001,-2300.877197,0.0,0.0,-0.025129,-0.002447,0.0,0.0
4_8344_8845_4r_mt_z,1,0,0,-1037.0991210000002,-548.180237,0.0,0.0,-0.0007559999999999999,0.227752,0.0,0.0
5_8344_8845_4r,1,0,0,2438.9841309999997,-2304.8435059999997,0.0,0.0,0.062022,-0.10997699999999999,0.0,0.0
6_8344_8845_4r,1,0,0,2397.826904,-562.432861,0.0,0.0,-0.07267799999999999,-0.056103999999999994,0.0,0.0
7_8344_8845_4r_mt_z,1,0,0,-2510.927734,-1267.364868,0.0,0.0,0.21525,-0.040427,0.0,0.0
8_8344-8845_4r_mt_z,1,0,0,840.825317,-1028.345337,0.0,0.0,-0.24192199999999997,0.382924,0.0,0.0
9_8344_8845_4r,1,0,0,-4070.962158,2465.817139,0.0,0.0,-0.140837,0.00598,0.0,0.0
10_8344_8845_4r,1,0,0,-4044.69751,1008.950928,0.0,0.0,0.063678,0.6612939999999999,0.0,0.0
11_8344_8845_4r,1,0,0,-761.216064,2303.787109,0.0,0.0,-0.24730700000000003,-0.587299,0.0,0.0
12_8344_8845_4r,1,0,0,-889.364441,966.5339970000001,0.0,0.0,-0.251753,0.00817,0.0,0.0
13_8344_8845_4r,1,0,0,-2559.871338,1777.522827,0.0,0.0,-0.13126500000000002,-0.305102,0.0,0.0
14_8344_8845_4r,1,0,0,2385.27832,2476.032227,0.0,0.0,0.389532,-0.29925799999999997,0.0,0.0
15_8344_8845_4r_mt_z,1,0,0,2395.869385,1038.165405,0.0,0.0,-0.17085,0.372485,0.0,0.0
16_8344_8845_4r,1,0,0,756.099792,1785.4947510000002,0.0,0.0,0.165338,-0.327408,0.0,0.0
17_8344_8845_2r_mt_z,1,0,0,-3138.269531,442.515503,0.0,0.0,-0.02337,-0.24864299999999998,0.0,0.0
18_8344_8845_2r,1,0,0,-1773.8649899999998,354.084259,0.0,0.0,-0.002223,-0.000684,0.0,0.0
19_8344_8845_2r_mt_z,1,0,0,-92.482826,723.305237,0.0,0.0,-0.214498,0.14519200000000002,0.0,0.0
20_8344_8845_2r_mt_z,1,0,0,1434.079712,742.064026,0.0,0.0,-0.058132,-0.171782,0.0,0.0
21_8344_8845_4r_xyz,1,0,0,-838.9910279999999,-614.524109,0.0,0.0,-0.131313,0.9971200000000001,0.0,0.0
22_8344_8845_4r_mt_z,1,0,0,-3994.073975,-2160.606445,0.0,0.0,0.21777399999999997,-0.141372,0.0,0.0
23_8344_8845_4r_mt_z,1,0,0,-3851.86499,2088.046875,0.0,0.0,-0.07844,-0.22165,0.0,0.0
24_8344_8845_4r_mt_z,1,0,0,2343.634033,-2073.817871,0.0,0.0,-0.27434400000000003,0.06779099999999999,0.0,0.0
25_8344_8845_4r_mt_z,1,0,0,2350.053711,2168.792236,0.0,0.0,-0.311081,-0.152226,0.0,0.0
26_8344_8845_4r_mt_z,1,0,0,-1844.550781,-996.0164789999999,0.0,0.0,-0.108472,0.122981,0.0,0.0
27_8344_8845_2r_mt_z,1,0,0,-1618.0053710000002,700.699158,0.0,0.0,-0.020846,0.073456,0.0,0.0
28_8344_8845_4r_mt_z,1,0,0,521.921509,-1602.4414060000001,0.0,0.0,-0.009861,0.363227,0.0,0.0
29_8344_8845_4r_mt_z,1,0,0,820.691284,1469.345459,0.0,0.0,-0.664959,-0.06624400000000001,0.0,0.0
30_8344_8845_3r_mt_z,1,0,0,-326.405365,-283.346985,0.0,0.0,-0.20681100000000002,0.180573,0.0,0.0
61_8344_8845_4r_mt_z,1,0,0,-4067.466064,-2193.302002,0.0,0.0,-0.017458,-0.229608,0.0,0.0
62_8344_8845_4r_mt_z,1,0,0,2040.637939,2052.019043,0.0,0.0,0.187054,-0.19953900000000002,0.0,0.0
63_8344_8845_4r_mt_z,1,0,0,2267.361328,-1402.6448970000001,0.0,0.0,-0.25967399999999996,-0.350489,0.0,0.0
65_8344_8845_4r_mt_z,1,0,0,-675.820618,1659.5936279999999,0.0,0.0,0.285702,-0.673177,0.0,0.0
P19_008344_1894_XN_09N203W_3,1,0,1,-3543.180176,-2052.497559,0.09999,0.09999,-0.271723,0.046268000000000004,0.0,0.0
P19_008344_1894_XN_09N203W_5,1,0,1,-3693.414551,118.131378,0.191225,0.191225,-0.007534999999999999,3e-06,0.0,0.0
P19_008344_1894_XN_09N203W_8,1,0,1,-3529.115479,1634.99353,0.010654,0.010654,-0.11299000000000001,0.190108,0.0,0.0
P19_008344_1894_XN_09N203W_9,1,0,1,-1530.085083,-2021.120728,0.025998,0.025998,-0.28780100000000003,-0.05082,0.0,0.0
P19_008344_1894_XN_09N203W_10,1,0,1,-1163.659546,-2110.94873,0.054246,0.054246,-0.209774,-0.028914999999999996,0.0,0.0
P19_008344_1894_XN_09N203W_11,1,0,1,-649.603027,-291.606293,0.144968,0.144968,0.179422,0.48035,0.0,0.0
P19_008344_1894_XN_09N203W_12,1,0,1,-1879.1154789999998,1650.314575,0.044342,0.044342,0.194544,-0.551285,0.0,0.0
P19_008344_1894_XN_09N203W_13,1,0,1,1195.076782,-2043.631714,0.081316,0.081316,-0.184309,0.153021,0.0,0.0
P19_008344_1894_XN_09N203W_14,1,0,1,1826.979736,-2180.584961,0.185789,0.185789,0.208304,-0.026378,0.0,0.0
P19_008344_1894_XN_09N203W_15,1,0,1,1833.592407,-1740.516968,0.23812199999999997,0.23812199999999997,0.652892,-0.509659,0.0,0.0
P19_008344_1894_XN_09N203W_16,1,0,1,1370.180664,-273.589996,0.11324100000000001,0.11324100000000001,0.296132,-0.060485000000000004,0.0,0.0
P19_008344_1894_XN_09N203W_17,1,0,1,1198.482544,-429.786133,0.055307,0.055307,-0.091967,0.10811400000000002,0.0,0.0
P19_008344_1894_XN_09N203W_18,1,0,1,1516.067993,1830.024048,0.009269,0.009269,-0.002093,-0.264173,0.0,0.0
P19_008344_1894_XN_09N203W_19,1,0,1,1338.967651,1679.986084,0.004901,0.004901,-0.030115,-0.306342,0.0,0.0
P19_008344_1894_XN_09N203W_20,1,0,1,1350.758423,1952.026978,0.019969999999999998,0.019969999999999998,-0.011408,-0.409686,0.0,0.0
P20_008845_1894_XN_09N203W_1,1,0,0,-3224.0,-2003.0,0.0,0.0,0.055124,0.018517,0.0,0.0
P20_008845_1894_XN_09N203W_2,1,0,0,-3389.0,-2155.0,0.0,0.0,-0.07315,-0.271173,0.0,0.0
P20_008845_1894_XN_09N203W_3,1,0,0,-2913.0,-2000.0,0.0,0.0,-0.08818,-0.049593,0.0,0.0
P20_008845_1894_XN_09N203W_4,1,0,1,-3226.0,167.0,0.0,0.0,-0.195774,-6.6e-05,0.0,0.0
P20_008845_1894_XN_09N203W_5,1,0,1,-2934.0,-6.0,0.0,0.0,-0.049005,0.437424,0.0,0.0
P20_008845_1894_XN_09N203W_6,1,0,3,-3378.0,1532.0,0.0,0.0,0.026541000000000002,0.063346,0.0,0.0
P20_008845_1894_XN_09N203W_7,1,0,3,-3378.0,1672.0,0.0,0.0,0.055623,0.013456000000000001,0.0,0.0
P20_008845_1894_XN_09N203W_8,1,0,3,-2793.0,1837.0,0.0,0.0,-0.11748299999999999,-0.22933699999999999,0.0,0.0
P20_008845_1894_XN_09N203W_9,1,0,0,-780.0,-1953.0,0.0,0.0,0.298743,-0.045963,0.0,0.0
P20_008845_1894_XN_09N203W_10,1,0,2,423.0,-1995.0,0.0,0.0,0.067585,0.401377,0.0,0.0
P20_008845_1894_XN_09N203W_11,1,0,1,-21.0,196.0,0.0,0.0,0.06955,-0.000458,0.0,0.0
P20_008845_1894_XN_09N203W_12,1,0,1,2885.0,-2124.0,0.0,0.0,0.25413600000000003,-0.273798,0.0,0.0
P20_008845_1894_XN_09N203W_13,1,0,1,2746.0,-2253.0,0.0,0.0,-0.407167,-0.176964,0.0,0.0
P20_008845_1894_XN_09N203W_14,1,0,0,2728.0,-1980.0,0.0,0.0,-0.885848,0.137668,0.0,0.0
P20_008845_1894_XN_09N203W_15,0,0,0,2942.0,58.0,0.0,0.0,0.0,0.0,0.0,0.0
P20_008845_1894_XN_09N203W_16,1,0,2,2865.0,2024.0,0.0,0.0,-0.053859000000000004,0.035981,0.0,0.0
P20_008845_1894_XN_09N203W_17,1,0,2,3175.0,1974.0,0.0,0.0,-0.064058,0.044374000000000004,0.0,0.0
P20_008845_1894_XN_09N203W_18,1,0,2,2872.0,1565.0,0.0,0.0,0.256228,0.21886,0.0,0.0
P03_002371_1888_XI_08N204W_49,1,0,1,-2629.182861,1085.034424,0.012761,0.012761,0.20840300000000003,-0.004282,0.0,0.0
P03_002371_1888_XI_08N204W_54,1,0,1,-1095.4067380000001,1127.088013,0.274421,0.274421,0.019106,-0.331897,0.0,0.0
P03_002371_1888_XI_08N204W_55,1,0,1,-941.496277,1247.825806,0.05563099999999999,0.05563099999999999,0.152919,-0.306029,0.0,0.0
P03_002371_1888_XI_08N204W_56,1,0,1,-1098.9589839999999,1441.816895,0.11484200000000001,0.11484200000000001,-0.297223,-0.308728,0.0,0.0
P03_002371_1888_XI_08N204W_63,1,0,1,119.94445800000001,1116.177612,0.023727,0.023727,-0.104057,-0.034587,0.0,0.0
P03_002371_1888_XI_08N204W_64,1,0,1,-19.255381,1270.651611,0.007022,0.007022,-0.29496999999999995,-0.13664600000000002,0.0,0.0
P03_002371_1888_XI_08N204W_65,1,0,1,-271.636139,1030.2692869999998,0.14131400000000002,0.14131400000000002,-0.007378,0.127183,0.0,0.0
P03_002371_1888_XI_08N204W_71,1,0,1,1793.756836,1419.46814,0.070811,0.070811,0.008126999999999999,-0.059650999999999996,0.0,0.0
P03_002371_1888_XI_08N204W_77,1,0,1,3770.185547,1056.4335939999999,0.051015,0.051015,-0.344149,0.7918810000000001,0.0,0.0
P01_001540_1889_XI_08N204W_3,1,0,0,-819.994568,-476.940125,0.0,0.0,-0.010086,0.238933,0.0,0.0
P01_001540_1889_XI_08N204W_4,1,0,0,-1038.7459720000002,-225.617737,0.0,0.0,-0.10251500000000001,0.293944,0.0,0.0
P01_001540_1889_XI_08N204W_5,1,0,0,-1043.086548,-229.29058799999999,0.0,0.0,-0.103618,0.22217399999999998,0.0,0.0
P01_001540_1889_XI_08N204W_6,1,0,0,-1016.6671140000001,-212.669418,0.0,0.0,0.098336,0.182504,0.0,0.0
P01_001540_1889_XI_08N204W_7,1,0,0,-1089.852539,-179.61308300000002,0.0,0.0,-0.09901499999999999,0.24748699999999998,0.0,0.0
P01_001540_1889_XI_08N204W_43,1,0,1,231.430023,1286.035034,0.179721,0.179721,0.043216000000000004,0.007601999999999999,0.0,0.0
P01_001540_1889_XI_08N204W_44,1,0,1,53.3703,1130.200195,0.035373,0.035373,-0.239021,0.05197,0.0,0.0
P01_001606_1897_XI_09N203W_20,1,0,1,-3490.634277,-1071.889893,0.074986,0.074986,-0.10951300000000001,0.027899,0.0,0.0
P01_001606_1897_XI_09N203W_21,1,0,1,-3489.029297,-1344.598267,0.117221,0.117221,0.11984000000000002,-0.07396599999999999,0.0,0.0
P01_001606_1897_XI_09N203W_26,1,0,1,-2843.921875,-1365.05249,0.066368,0.066368,0.053526,-0.129321,0.0,0.0
P01_001606_1897_XI_09N203W_27,1,0,1,-2872.278076,-1055.845581,0.044944,0.044944,0.014887000000000001,-0.175307,0.0,0.0
P01_001606_1897_XI_09N203W_32,1,0,1,-702.726318,-1309.760742,0.097152,0.097152,-0.12127,0.083388,0.0,0.0
P01_001606_1897_XI_09N203W_33,1,0,1,-425.8797,-1332.264404,0.141272,0.141272,0.27812,0.018378,0.0,0.0
P01_001606_1897_XI_09N203W_39,1,0,1,957.507324,-1314.205933,0.214219,0.214219,-0.08834600000000001,0.135983,0.0,0.0
P01_001606_1897_XI_09N203W_40,1,0,1,1286.863525,-1325.946045,0.022701,0.022701,0.025672000000000004,-0.015907,0.0,0.0
P01_001606_1897_XI_09N203W_41,1,0,1,1415.3436279999999,-1585.812134,0.062944,0.062944,0.17824700000000002,0.100219,0.0,0.0
P01_001606_1897_XI_09N203W_42,1,0,1,-713.122681,-1899.2719730000001,0.10971099999999999,0.10971099999999999,-0.24755700000000003,0.240463,0.0,0.0
P01_001606_1897_XI_09N203W_48,1,0,1,2357.769287,-1605.21167,0.142259,0.142259,-0.046652,-0.341859,0.0,0.0
P01_001606_1897_XI_09N203W_49,1,0,1,2368.67749,-1310.2536619999998,0.084816,0.084816,0.16844800000000001,-0.178884,0.0,0.0
P01_001606_1897_XI_09N203W_50,1,0,1,2938.904541,-1286.650635,0.268181,0.268181,0.22215,-0.28928200000000004,0.0,0.0
P03_002226_1895_XI_09N203W_41,1,0,1,-2964.822021,-752.72998,0.130511,0.130511,0.19989500000000002,0.18193199999999998,0.0,0.0
P03_002226_1895_XI_09N203W_42,1,0,1,-2676.941162,-549.997925,0.015522999999999999,0.015522999999999999,-0.189075,0.282047,0.0,0.0
P03_002226_1895_XI_09N203W_43,1,0,1,-2503.68457,-1243.333618,0.091619,0.091619,-0.183131,-0.034143,0.0,0.0
P03_002226_1895_XI_09N203W_46,1,0,1,-984.080139,-1301.115845,0.02843,0.02843,-0.10387,-0.014166,0.0,0.0
P03_002226_1895_XI_09N203W_47,1,0,1,-1119.626953,-926.1320800000001,0.195907,0.195907,-0.217611,0.08741499999999999,0.0,0.0
P03_002226_1895_XI_09N203W_53,1,0,1,3304.79834,-528.821411,0.090225,0.090225,-0.12703599999999998,-0.24331999999999998,0.0,0.0
P03_002226_1895_XI_09N203W_54,1,0,1,3597.587646,-608.987488,0.18746300000000002,0.18746300000000002,0.13215,-0.402642,0.0,0.0
P03_002226_1895_XI_09N203W_55,1,0,1,3277.619873,-1106.364136,0.141123,0.141123,-0.258301,-0.48746300000000004,0.0,0.0
P03_002226_1895_XI_09N203W_64,1,0,1,-1488.9279789999998,306.37027,0.141123,0.141123,0.11354000000000002,0.000408,0.0,0.0
P03_002226_1895_XI_09N203W_67,1,0,1,-1501.843384,294.863434,0.141123,0.141123,-0.038216,-0.001066,0.0,0.0
P03_002226_1895_XI_09N203W_68,1,0,1,-1487.291992,301.690338,0.141123,0.141123,-0.16136,0.000601,0.0,0.0
P03_002226_1895_XI_09N203W_71,1,0,1,-1476.8244630000002,421.30285599999996,0.141123,0.141123,0.045458,0.000436,0.0,0.0
P03_002226_1895_XI_09N203W_66,1,0,1,-1473.926636,445.16494800000004,0.141123,0.141123,-0.039173,-6.1e-05,0.0,0.0
P03_002226_1895_XI_09N203W_72,1,0,1,-1478.19104,398.059052,0.141123,0.141123,0.03951,-0.0005690000000000001,0.0,0.0
P03_002226_1895_XI_09N203W_74,1,0,1,-1463.276489,270.004364,0.141123,0.141123,0.097608,0.000572,0.0,0.0
P03_002226_1895_XI_09N203W_76,1,0,1,-1399.385376,210.815338,0.141123,0.141123,-0.021339,-0.000335,0.0,0.0
P03_002226_1895_XI_09N203W_82,1,0,1,-1110.612061,-112.804382,0.141123,0.141123,-0.179249,0.431591,0.0,0.0
P19_008344_1894_XN_09N203W_2,1,0,1,-3987.0656740000004,-1756.185791,0.141123,0.141123,0.018394,-0.141215,0.0,0.0
P19_008344_1894_XN_09N203W_7,1,0,1,-3991.17334,1967.117554,0.141123,0.141123,0.242488,-0.04689,0.0,0.0
P03_002371_1888_XI_08N204W_76,1,0,1,4066.5737299999996,1038.447998,0.141123,0.141123,-0.272976,0.9673510000000001,0.0,0.0
P03_002371_1888_XI_08N204W_78,1,0,1,4083.8732909999994,1277.689209,0.141123,0.141123,-0.328486,0.8362860000000001,0.0,0.0
P01_001606_1897_XI_09N203W_19,1,0,1,-3917.203125,-1175.195679,0.141123,0.141123,-0.022262999999999998,-0.15115599999999998,0.0,0.0
P01_001606_1897_XI_09N203W_65,1,0,1,4070.48584,-2315.9921879999997,0.141123,0.141123,-0.12137,-0.47907,0.0,0.0
P03_002226_1895_XI_09N203W_1,1,0,0,-1197.647949,-569.925598,0.0,0.0,-0.070627,0.194853,0.0,0.0
P03_002226_1895_XI_09N203W_2,1,0,0,-1241.685791,-499.006836,0.0,0.0,-0.066482,0.270447,0.0,0.0
This diff is collapsed.
Click to expand it.
plio/io/io_bae.py
+
35
−
75
View file @
a14410e6
import
json
import
json
import
re
import
re
from
functools
import
singledispatch
import
numpy
as
np
import
numpy
as
np
import
pandas
as
pd
import
pandas
as
pd
...
@@ -52,14 +53,19 @@ def socetset_keywords_to_json(keywords, ell=None):
...
@@ -52,14 +53,19 @@ def socetset_keywords_to_json(keywords, ell=None):
parse
(
ell
)
parse
(
ell
)
return
json
.
dumps
(
stream
)
return
json
.
dumps
(
stream
)
def
read_ipfs
(
input_data_list
):
@singledispatch
def
read_ipf
(
arg
):
# pragma: no cover
return
str
(
arg
)
@read_ipf.register
(
str
)
def
read_ipf_str
(
input_data
):
"""
"""
Read a socet ipf file into a pandas data frame
Read a socet ipf file into a pandas data frame
Parameters
Parameters
----------
----------
input_data
_list
:
li
st
input_data : st
r
list of
path
s
to the a
set of
input data file
s
path to the a
n
input data file
Returns
Returns
-------
-------
...
@@ -67,102 +73,56 @@ def read_ipfs(input_data_list):
...
@@ -67,102 +73,56 @@ def read_ipfs(input_data_list):
containing the ipf data with appropriate column names and indices
containing the ipf data with appropriate column names and indices
"""
"""
default_columns
=
np
.
genfromtxt
(
input_data_list
[
0
],
skip_header
=
2
,
dtype
=
'
unicode
'
,
# Check that the number of rows is matching the expected number
max_rows
=
1
,
delimiter
=
'
,
'
)
with
open
(
input_data
,
'
r
'
)
as
f
:
for
i
,
l
in
enumerate
(
f
):
columns
=
[]
if
i
==
1
:
cnt
=
int
(
l
)
for
column
in
default_columns
:
elif
i
==
2
:
col
=
l
if
'
(
'
in
column
and
'
)
'
in
column
:
break
column_name
,
suffix
=
column
.
split
(
'
(
'
)
num
=
int
(
suffix
.
split
(
'
)
'
)[
0
])
for
column_num
in
range
(
int
(
num
)):
columns
=
np
.
genfromtxt
(
input_data
,
skip_header
=
2
,
dtype
=
'
unicode
'
,
new_column
=
'
{}{}
'
.
format
(
column_name
,
column_num
)
max_rows
=
1
,
delimiter
=
'
,
'
)
columns
.
append
(
new_column
);
else
:
# TODO: Add unicode conversion
columns
.
append
(
column
)
d
=
[
line
.
split
()
for
line
in
open
(
input_data
,
'
r
'
)]
d
=
np
.
hstack
(
np
.
array
(
d
[
3
:]))
d
_total
=
[]
d
=
d
.
reshape
(
-
1
,
12
)
for
input_file
in
input_data_list
:
df
=
pd
.
DataFrame
(
d
,
columns
=
columns
)
d
=
read_ipf
(
input_file
)
for
point
in
d
:
d_total
.
append
(
point
)
df
=
pd
.
Data
F
rame
(
d_total
,
columns
=
columns
)
assert
int
(
cnt
)
==
len
(
df
),
'
Data
f
rame
length {} does not match point length {}.
'
.
format
(
int
(
cnt
),
len
(
df
)
)
# Soft conversion of numeric types to numerics, allows str in first col for point_id
# Soft conversion of numeric types to numerics, allows str in first col for point_id
df
=
df
.
apply
(
pd
.
to_numeric
,
errors
=
'
ignore
'
)
df
=
df
.
apply
(
pd
.
to_numeric
,
errors
=
'
ignore
'
)
# Validate the read data with the header point count
# assert int(cnt) == len(df), 'Dataframe length {} does not match point length {}.'.format(int(cnt), len(df))
return
df
return
df
def
read_ipf
(
input_data
):
@read_ipf.register
(
list
)
def
read_ipf_list
(
input_data_list
):
"""
"""
Read a socet ipf file into a pandas data frame
Read a socet ipf file into a pandas data frame
Parameters
Parameters
----------
----------
input_data : st
r
input_data
_list
:
li
st
path to the a
n
input data file
list of
path
s
to the a
set of
input data file
s
Returns
Returns
-------
-------
df : pd.DataFrame
df : pd.DataFrame
containing the ipf data with appropriate column names and indices
containing the ipf data with appropriate column names and indices
"""
"""
frames
=
[]
# Check that the number of rows is matching the expected number
for
input_file
in
input_data_list
:
with
open
(
input_data
,
'
r
'
)
as
f
:
frames
.
append
(
read_ipf
(
input_file
))
for
i
,
l
in
enumerate
(
f
):
if
i
==
1
:
cnt
=
int
(
l
)
elif
i
==
2
:
col
=
l
break
# default_columns = np.genfromtxt(input_data, skip_header=2, dtype='unicode',
# max_rows = 1, delimiter = ',')
#
# columns = []
#
# for column in default_columns:
#
# if '(' in column and ')' in column:
# column_name ,suffix = column.split('(')
# num = int(suffix.split(')')[0])
#
# for column_num in range(int(num)):
# new_column = '{}{}'.format(column_name, column_num)
# columns.append(new_column);
#
# else:
# columns.append(column)
# TODO: Add unicode conversion
d
=
[
line
.
split
()
for
line
in
open
(
input_data
,
'
r
'
)]
d
=
np
.
hstack
(
np
.
array
(
d
[
3
:]))
d
=
d
.
reshape
(
-
1
,
12
)
assert
int
(
cnt
)
==
len
(
d
),
'
Dataframe length {} does not match point length {}.
'
.
format
(
int
(
cnt
),
len
(
df
))
return
d
df
=
pd
.
concat
(
frames
)
# df = pd.DataFrame(d, columns=columns)
return
df
#
# # Soft conversion of numeric types to numerics, allows str in first col for point_id
# df = df.apply(pd.to_numeric, errors='ignore')
#
# # Validate the read data with the header point count
# assert int(cnt) == len(df), 'Dataframe length {} does not match point length {}.'.format(int(cnt), len(df))
#
# return df
def
read_gpf
(
input_data
):
def
read_gpf
(
input_data
):
"""
"""
...
@@ -242,7 +202,7 @@ def save_gpf(df, output_file):
...
@@ -242,7 +202,7 @@ def save_gpf(df, output_file):
try
:
try
:
outGPF
=
open
(
output_file
,
'
w
'
,
newline
=
'
\r\n
'
)
outGPF
=
open
(
output_file
,
'
w
'
,
newline
=
'
\r\n
'
)
except
:
except
:
print
(
'
Unable to open output gpf file: {0}
'
.
format
(
output_file
))
print
(
'
Unable to open output gpf file: {0}
'
.
format
(
output_file
))
return
1
return
1
#grab number of rows in pandas dataframe
#grab number of rows in pandas dataframe
...
...
This diff is collapsed.
Click to expand it.
plio/io/tests/test_io_bae.py
+
24
−
10
View file @
a14410e6
import
json
import
json
import
numpy
as
np
import
numpy
as
np
import
pandas
as
pd
import
pandas
as
pd
from
pandas.util.testing
import
assert_frame_equal
from
pandas.util.testing
import
assert_frame_equal
from
plio.io.io_bae
import
socetset_keywords_to_json
,
read_gpf
,
save_gpf
from
plio.io.io_bae
import
socetset_keywords_to_json
,
read_gpf
,
save_gpf
,
read_ipf
from
plio.examples
import
get_path
from
plio.examples
import
get_path
import
pytest
import
pytest
...
@@ -13,27 +14,40 @@ def insight_gpf():
...
@@ -13,27 +14,40 @@ def insight_gpf():
return
get_path
(
'
InSightE08_XW.gpf
'
)
return
get_path
(
'
InSightE08_XW.gpf
'
)
@pytest.fixture
()
@pytest.fixture
()
def
insight_expected
():
def
insight_expected
_gpf
():
return
pd
.
read_csv
(
get_path
(
'
InSightE08_XW.csv
'
))
return
pd
.
read_csv
(
get_path
(
'
InSightE08_XW.csv
'
))
@pytest.mark.parametrize
(
'
gpf, expected
'
,
[(
insight_gpf
(),
insight_expected
())])
@pytest.fixture
def
insight_ipf
():
return
get_path
(
'
P20_008845_1894_XN_09N203W.ipf
'
)
@pytest.fixture
()
def
insight_expected_ipf
():
return
pd
.
read_csv
(
get_path
(
'
P20_008845_1894_XN_09N203W.csv
'
))
@pytest.mark.parametrize
(
'
gpf, expected
'
,
[(
insight_gpf
(),
insight_expected_gpf
())])
def
test_read_gfp
(
gpf
,
expected
):
def
test_read_gfp
(
gpf
,
expected
):
df
=
read_gpf
(
gpf
)
df
=
read_gpf
(
gpf
)
assert_frame_equal
(
df
,
expected
)
assert_frame_equal
(
df
,
expected
)
@pytest.mark.parametrize
(
'
gpf
'
,
[(
insight_gpf
())])
@pytest.mark.parametrize
(
'
ipf, expected
'
,
[([
insight_ipf
()],
insight_expected_ipf
())])
def
test_write_gpf
(
gpf
):
def
test_read_ifp
(
ipf
,
expected
):
df
=
read_ipf
(
ipf
)
assert_frame_equal
(
df
,
expected
)
@pytest.mark.parametrize
(
'
gpf, file
'
,
[(
insight_gpf
(),
'
out.gpf
'
)])
def
test_write_gpf
(
gpf
,
file
):
"""
"""
We test by manually comparing files and not using filecmp so that we
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.
are not testing float point precision differences, e.g. 0.0 == 0.00000000.
"""
"""
df
=
read_gpf
(
gpf
)
df
=
read_gpf
(
gpf
)
save_gpf
(
df
,
'
out.gpf
'
)
save_gpf
(
df
,
file
)
with
open
(
gpf
)
as
f
:
with
open
(
gpf
)
as
f
:
fl
=
f
.
readlines
()
fl
=
f
.
readlines
()
with
open
(
'
out.gpf
'
)
as
f
:
with
open
(
file
)
as
f
:
fs
=
f
.
readlines
()
fs
=
f
.
readlines
()
# Check that the header is the same
# Check that the header is the same
...
@@ -41,7 +55,7 @@ def test_write_gpf(gpf):
...
@@ -41,7 +55,7 @@ def test_write_gpf(gpf):
assert
fl
[
i
]
==
fs
[
i
]
assert
fl
[
i
]
==
fs
[
i
]
truth_arr
=
np
.
genfromtxt
(
gpf
,
skip_header
=
3
)
truth_arr
=
np
.
genfromtxt
(
gpf
,
skip_header
=
3
)
test_arr
=
np
.
genfromtxt
(
'
out.gpf
'
,
skip_header
=
3
)
test_arr
=
np
.
genfromtxt
(
file
,
skip_header
=
3
)
np
.
testing
.
assert_array_almost_equal
(
truth_arr
,
test_arr
)
np
.
testing
.
assert_array_almost_equal
(
truth_arr
,
test_arr
)
def
test_create_from_socet_lis
():
def
test_create_from_socet_lis
():
...
@@ -49,8 +63,8 @@ def test_create_from_socet_lis():
...
@@ -49,8 +63,8 @@ def test_create_from_socet_lis():
socetell
=
get_path
(
'
ellipsoid.ell
'
)
socetell
=
get_path
(
'
ellipsoid.ell
'
)
js
=
json
.
loads
(
socetset_keywords_to_json
(
socetlis
))
js
=
json
.
loads
(
socetset_keywords_to_json
(
socetlis
))
assert
isinstance
(
js
,
dict
)
# This is essentially a JSON linter
assert
isinstance
(
js
,
dict
)
# This is essentially a JSON linter
# Manually validated
# Manually validated
assert
'
RECTIFICATION_TERMS
'
in
js
.
keys
()
assert
'
RECTIFICATION_TERMS
'
in
js
.
keys
()
assert
'
SEMI_MAJOR_AXIS
'
in
js
.
keys
()
# From ellipsoid file
assert
'
SEMI_MAJOR_AXIS
'
in
js
.
keys
()
# From ellipsoid file
assert
'
NUMBER_OF_EPHEM
'
in
js
.
keys
()
assert
'
NUMBER_OF_EPHEM
'
in
js
.
keys
()
assert
len
(
js
[
'
EPHEM_PTS
'
])
/
3
==
js
[
'
NUMBER_OF_EPHEM
'
]
assert
len
(
js
[
'
EPHEM_PTS
'
])
/
3
==
js
[
'
NUMBER_OF_EPHEM
'
]
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment