{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def calculate_angle_code(lat1, lng1, lat2, lng2, lat3, lng3):\n", " # 모든 좌표가 동일한 경우 NaN 반환\n", " if ((lat1 == lat2) and (lng1 == lng2)) or ((lat2 == lat3) and (lng2 == lng3)):\n", " return np.nan\n", " # 위도와 경도를 라디안으로 변환\n", " lat1, lng1, lat2, lng2, lat3, lng3 = map(np.radians, [lat1, lng1, lat2, lng2, lat3, lng3])\n", " # 진입방위각 계산\n", " dlng_entry = lng1 - lng2\n", " x_entry = np.sin(dlng_entry) * np.cos(lat1)\n", " y_entry = np.cos(lat2) * np.sin(lat1) - (np.sin(lat2) * np.cos(lat1) * np.cos(dlng_entry))\n", " entry_bearing = np.arctan2(x_entry, y_entry)\n", " entry_bearing = np.degrees(entry_bearing)\n", " entry_bearing = round((entry_bearing + 360) % 360)\n", " # 진출방위각 계산\n", " dlng_exit = lng3 - lng2\n", " x_exit = np.sin(dlng_exit) * np.cos(lat3)\n", " y_exit = np.cos(lat2) * np.sin(lat3) - (np.sin(lat2) * np.cos(lat3) * np.cos(dlng_exit))\n", " exit_bearing = np.arctan2(x_exit, y_exit)\n", " exit_bearing = np.degrees(exit_bearing)\n", " exit_bearing = round((exit_bearing + 360) % 360)\n", " # angle_code 생성\n", " angle_code = f\"{entry_bearing:03}{exit_bearing:03}\"\n", " return angle_code\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'331047'" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "calculate_angle_code(37.5665, 126.9780, 37.5515, 126.9885, 37.5666, 127.0089)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nophase_noring_typeflow_lat_1flow_lon_1flow_lat_2flow_lon_2flow_lat_3flow_lon_3
01751A37.36825127.1149137.36857127.1149037.36869127.11491
11751B37.36890127.1146737.36857127.1146537.36845127.11466
21752A37.36889127.1149137.36857127.1149037.36856127.11505
31752B37.36824127.1146637.36857127.1146537.36857127.11451
41753A37.36867127.1151937.36867127.1147837.36867127.11463
51753B37.36847127.1151837.36847127.1147837.36835127.11478
61754A37.36866127.1143737.36867127.1147837.36878127.11478
71754B37.36847127.1143737.36847127.1147837.36847127.11493
81761A37.36691127.1149337.36724127.1149337.36735127.11493
91761B37.36756127.1146737.36723127.1146837.36712127.11468
101762A37.36691127.1149337.36724127.1149337.36735127.11493
111762B37.36691127.1146837.36724127.1146837.36724127.11453
121763A37.36734127.1144037.36734127.1148137.36745127.11480
131771A37.36587127.1149237.36619127.1149237.36631127.11492
141771B37.36652127.1146837.36619127.1146737.36608127.11468
151772A37.36652127.1149237.36619127.1149237.36619127.11507
161772B37.36587127.1146837.36619127.1146737.36619127.11453
171773A19.69448117.9926019.69448117.9926019.69448117.99260
181774A37.36628127.1143937.36629127.1148037.36641127.11480
191774B37.36609127.1152037.36609127.1148037.36598127.11480
201781A37.36313127.1149337.36346127.1149337.36358127.11493
211781B37.36378127.1146837.36346127.1146837.36334127.11468
221782A37.36378127.1149337.36346127.1149337.36346127.11507
231782B37.36313127.1146837.36346127.1146837.36346127.11453
241783A37.36356127.1144037.36356127.1148037.36367127.11480
251783B37.36336127.1143937.36336127.1148037.36336127.11495
261784A37.36356127.1152137.36356127.1148037.36356127.11465
271784B37.36336127.1152137.36336127.1148037.36324127.11480
282011A37.36822127.1099637.36854127.1099637.36866127.10996
292011B37.36822127.1097137.36854127.1097137.36854127.10957
302012A37.36864127.1094337.36864127.1098437.36876127.10984
312012B37.36844127.1094337.36844127.1098437.36844127.10999
322013A37.36864127.1102537.36864127.1098437.36864127.10969
332013B37.36844127.1094337.36844127.1098437.36844127.10999
342014A37.36864127.1102537.36864127.1098437.36864127.10969
352014B37.36844127.1102537.36844127.1098437.36832127.10984
362015A37.36887127.1099637.36854127.1099637.36854127.11011
372015B37.36886127.1097137.36854127.1097137.36842127.10971
382021A37.36865127.1128237.36865127.1124137.36865127.11227
392021B37.36845127.1120137.36845127.1124137.36845127.11256
402022A19.69448117.9926019.69448117.9926019.69448117.99260
412061A37.36451127.1099437.36483127.1099437.36495127.10994
422061B37.36516127.1096937.36484127.1096937.36472127.10969
432062A19.69448117.9926019.69448117.9926019.69448117.99260
442063A37.36451127.1099437.36483127.1099437.36495127.10994
452063B37.36516127.1096937.36484127.1096937.36472127.10969
462064A19.69448117.9926019.69448117.9926019.69448117.99260
472101A37.36357127.1102337.36357127.1098237.36357127.10968
482102A37.36356127.1094137.36357127.1098237.36369127.10982
492102B37.36337127.1094237.36337127.1098237.36337127.10997
502103A37.36380127.1099437.36347127.1099537.36347127.11009
512103B37.36380127.1097037.36347127.1097037.36336127.10970
522104A37.36315127.1099537.36347127.1099537.36359127.10995
532104B37.36315127.1097037.36347127.1097037.36347127.10955
542111A37.36356127.1127737.36356127.1123737.36356127.11222
552111B37.36336127.1119637.36336127.1123737.36336127.11252
562112A19.69448117.9926019.69448117.9926019.69448117.99260
572121A37.36357127.1134737.36357127.1130637.36357127.11291
582121B37.36336127.1126637.36337127.1130637.36337127.11321
592122A19.69448117.9926019.69448117.9926019.69448117.99260
\n", "
" ], "text/plain": [ " inter_no phase_no ring_type flow_lat_1 flow_lon_1 flow_lat_2 \\\n", "0 175 1 A 37.36825 127.11491 37.36857 \n", "1 175 1 B 37.36890 127.11467 37.36857 \n", "2 175 2 A 37.36889 127.11491 37.36857 \n", "3 175 2 B 37.36824 127.11466 37.36857 \n", "4 175 3 A 37.36867 127.11519 37.36867 \n", "5 175 3 B 37.36847 127.11518 37.36847 \n", "6 175 4 A 37.36866 127.11437 37.36867 \n", "7 175 4 B 37.36847 127.11437 37.36847 \n", "8 176 1 A 37.36691 127.11493 37.36724 \n", "9 176 1 B 37.36756 127.11467 37.36723 \n", "10 176 2 A 37.36691 127.11493 37.36724 \n", "11 176 2 B 37.36691 127.11468 37.36724 \n", "12 176 3 A 37.36734 127.11440 37.36734 \n", "13 177 1 A 37.36587 127.11492 37.36619 \n", "14 177 1 B 37.36652 127.11468 37.36619 \n", "15 177 2 A 37.36652 127.11492 37.36619 \n", "16 177 2 B 37.36587 127.11468 37.36619 \n", "17 177 3 A 19.69448 117.99260 19.69448 \n", "18 177 4 A 37.36628 127.11439 37.36629 \n", "19 177 4 B 37.36609 127.11520 37.36609 \n", "20 178 1 A 37.36313 127.11493 37.36346 \n", "21 178 1 B 37.36378 127.11468 37.36346 \n", "22 178 2 A 37.36378 127.11493 37.36346 \n", "23 178 2 B 37.36313 127.11468 37.36346 \n", "24 178 3 A 37.36356 127.11440 37.36356 \n", "25 178 3 B 37.36336 127.11439 37.36336 \n", "26 178 4 A 37.36356 127.11521 37.36356 \n", "27 178 4 B 37.36336 127.11521 37.36336 \n", "28 201 1 A 37.36822 127.10996 37.36854 \n", "29 201 1 B 37.36822 127.10971 37.36854 \n", "30 201 2 A 37.36864 127.10943 37.36864 \n", "31 201 2 B 37.36844 127.10943 37.36844 \n", "32 201 3 A 37.36864 127.11025 37.36864 \n", "33 201 3 B 37.36844 127.10943 37.36844 \n", "34 201 4 A 37.36864 127.11025 37.36864 \n", "35 201 4 B 37.36844 127.11025 37.36844 \n", "36 201 5 A 37.36887 127.10996 37.36854 \n", "37 201 5 B 37.36886 127.10971 37.36854 \n", "38 202 1 A 37.36865 127.11282 37.36865 \n", "39 202 1 B 37.36845 127.11201 37.36845 \n", "40 202 2 A 19.69448 117.99260 19.69448 \n", "41 206 1 A 37.36451 127.10994 37.36483 \n", "42 206 1 B 37.36516 127.10969 37.36484 \n", "43 206 2 A 19.69448 117.99260 19.69448 \n", "44 206 3 A 37.36451 127.10994 37.36483 \n", "45 206 3 B 37.36516 127.10969 37.36484 \n", "46 206 4 A 19.69448 117.99260 19.69448 \n", "47 210 1 A 37.36357 127.11023 37.36357 \n", "48 210 2 A 37.36356 127.10941 37.36357 \n", "49 210 2 B 37.36337 127.10942 37.36337 \n", "50 210 3 A 37.36380 127.10994 37.36347 \n", "51 210 3 B 37.36380 127.10970 37.36347 \n", "52 210 4 A 37.36315 127.10995 37.36347 \n", "53 210 4 B 37.36315 127.10970 37.36347 \n", "54 211 1 A 37.36356 127.11277 37.36356 \n", "55 211 1 B 37.36336 127.11196 37.36336 \n", "56 211 2 A 19.69448 117.99260 19.69448 \n", "57 212 1 A 37.36357 127.11347 37.36357 \n", "58 212 1 B 37.36336 127.11266 37.36337 \n", "59 212 2 A 19.69448 117.99260 19.69448 \n", "\n", " flow_lon_2 flow_lat_3 flow_lon_3 \n", "0 127.11490 37.36869 127.11491 \n", "1 127.11465 37.36845 127.11466 \n", "2 127.11490 37.36856 127.11505 \n", "3 127.11465 37.36857 127.11451 \n", "4 127.11478 37.36867 127.11463 \n", "5 127.11478 37.36835 127.11478 \n", "6 127.11478 37.36878 127.11478 \n", "7 127.11478 37.36847 127.11493 \n", "8 127.11493 37.36735 127.11493 \n", "9 127.11468 37.36712 127.11468 \n", "10 127.11493 37.36735 127.11493 \n", "11 127.11468 37.36724 127.11453 \n", "12 127.11481 37.36745 127.11480 \n", "13 127.11492 37.36631 127.11492 \n", "14 127.11467 37.36608 127.11468 \n", "15 127.11492 37.36619 127.11507 \n", "16 127.11467 37.36619 127.11453 \n", "17 117.99260 19.69448 117.99260 \n", "18 127.11480 37.36641 127.11480 \n", "19 127.11480 37.36598 127.11480 \n", "20 127.11493 37.36358 127.11493 \n", "21 127.11468 37.36334 127.11468 \n", "22 127.11493 37.36346 127.11507 \n", "23 127.11468 37.36346 127.11453 \n", "24 127.11480 37.36367 127.11480 \n", "25 127.11480 37.36336 127.11495 \n", "26 127.11480 37.36356 127.11465 \n", "27 127.11480 37.36324 127.11480 \n", "28 127.10996 37.36866 127.10996 \n", "29 127.10971 37.36854 127.10957 \n", "30 127.10984 37.36876 127.10984 \n", "31 127.10984 37.36844 127.10999 \n", "32 127.10984 37.36864 127.10969 \n", "33 127.10984 37.36844 127.10999 \n", "34 127.10984 37.36864 127.10969 \n", "35 127.10984 37.36832 127.10984 \n", "36 127.10996 37.36854 127.11011 \n", "37 127.10971 37.36842 127.10971 \n", "38 127.11241 37.36865 127.11227 \n", "39 127.11241 37.36845 127.11256 \n", "40 117.99260 19.69448 117.99260 \n", "41 127.10994 37.36495 127.10994 \n", "42 127.10969 37.36472 127.10969 \n", "43 117.99260 19.69448 117.99260 \n", "44 127.10994 37.36495 127.10994 \n", "45 127.10969 37.36472 127.10969 \n", "46 117.99260 19.69448 117.99260 \n", "47 127.10982 37.36357 127.10968 \n", "48 127.10982 37.36369 127.10982 \n", "49 127.10982 37.36337 127.10997 \n", "50 127.10995 37.36347 127.11009 \n", "51 127.10970 37.36336 127.10970 \n", "52 127.10995 37.36359 127.10995 \n", "53 127.10970 37.36347 127.10955 \n", "54 127.11237 37.36356 127.11222 \n", "55 127.11237 37.36336 127.11252 \n", "56 117.99260 19.69448 117.99260 \n", "57 127.11306 37.36357 127.11291 \n", "58 127.11306 37.36337 127.11321 \n", "59 117.99260 19.69448 117.99260 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tp = pd.read_csv('flow_3points.csv') # three points\n", "tp" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
inter_nophase_noring_typeangle_code
01751A179004
11751B003176
21752A001095
31752B179270
41753A090270
51753B090180
61754A268000
71754B270090
81761A180000
91761B359180
101762A180000
111762B180270
121763A270356
131771A180000
141771B001176
151772A000090
161772B179270
171773ANaN
181774A268000
191774B090180
201781A180000
211781B000180
221782A000090
231782B180270
241783A270000
251783B270090
261784A090270
271784B090180
282011A180000
292011B180270
302012A270000
312012B270090
322013A090270
332013B270090
342014A090270
352014B090180
362015A000090
372015B000180
382021A090270
392021B270090
402022ANaN
412061A180000
422061B000180
432062ANaN
442063A180000
452063B000180
462064ANaN
472101A090270
482102A268000
492102B270090
502103A359090
512103B000180
522104A180000
532104B180270
542111A090270
552111B270090
562112ANaN
572121A090270
582121B268090
592122ANaN
\n", "
" ], "text/plain": [ " inter_no phase_no ring_type angle_code\n", "0 175 1 A 179004\n", "1 175 1 B 003176\n", "2 175 2 A 001095\n", "3 175 2 B 179270\n", "4 175 3 A 090270\n", "5 175 3 B 090180\n", "6 175 4 A 268000\n", "7 175 4 B 270090\n", "8 176 1 A 180000\n", "9 176 1 B 359180\n", "10 176 2 A 180000\n", "11 176 2 B 180270\n", "12 176 3 A 270356\n", "13 177 1 A 180000\n", "14 177 1 B 001176\n", "15 177 2 A 000090\n", "16 177 2 B 179270\n", "17 177 3 A NaN\n", "18 177 4 A 268000\n", "19 177 4 B 090180\n", "20 178 1 A 180000\n", "21 178 1 B 000180\n", "22 178 2 A 000090\n", "23 178 2 B 180270\n", "24 178 3 A 270000\n", "25 178 3 B 270090\n", "26 178 4 A 090270\n", "27 178 4 B 090180\n", "28 201 1 A 180000\n", "29 201 1 B 180270\n", "30 201 2 A 270000\n", "31 201 2 B 270090\n", "32 201 3 A 090270\n", "33 201 3 B 270090\n", "34 201 4 A 090270\n", "35 201 4 B 090180\n", "36 201 5 A 000090\n", "37 201 5 B 000180\n", "38 202 1 A 090270\n", "39 202 1 B 270090\n", "40 202 2 A NaN\n", "41 206 1 A 180000\n", "42 206 1 B 000180\n", "43 206 2 A NaN\n", "44 206 3 A 180000\n", "45 206 3 B 000180\n", "46 206 4 A NaN\n", "47 210 1 A 090270\n", "48 210 2 A 268000\n", "49 210 2 B 270090\n", "50 210 3 A 359090\n", "51 210 3 B 000180\n", "52 210 4 A 180000\n", "53 210 4 B 180270\n", "54 211 1 A 090270\n", "55 211 1 B 270090\n", "56 211 2 A NaN\n", "57 212 1 A 090270\n", "58 212 1 B 268090\n", "59 212 2 A NaN" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tp['angle_code'] = tp.apply(lambda row: calculate_angle_code(row['flow_lat_1'], row['flow_lon_1'], row['flow_lat_2'], row['flow_lon_2'], row['flow_lat_3'], row['flow_lon_3']), axis=1)\n", "tp[['inter_no', 'phase_no', 'ring_type', 'angle_code']]\n" ] } ], "metadata": { "kernelspec": { "display_name": "sts", "language": "python", "name": "sts" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }