diff --git a/README.md b/README.md index 8302f7d..c843f1b 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,12 @@ mkdir -p models/gpt2 Download config.json & pytorch_model.bin from https://huggingface.co/openai-community/gpt2/tree/main +wget https://huggingface.co/openai-community/gpt2/resolve/main/config.json?download=true -O ./models/gpt2/config.json + +wget https://huggingface.co/openai-community/gpt2/resolve/main/pytorch_model.bin?download=true -O ./models/gpt2/config.json + Use pytorch >= 2.6 to load model. ## Run -Run: `python.py --config configs/STGODE_LLM_GPT2/PEMS08.yaml \ No newline at end of file +Run: `python.py --config configs/STGODE_LLM_GPT2/PEMS08.yaml diff --git a/data/PEMS03/PEMS03.csv b/data/PEMS03/PEMS03.csv new file mode 100644 index 0000000..00dec00 --- /dev/null +++ b/data/PEMS03/PEMS03.csv @@ -0,0 +1,548 @@ +from,to,distance +317842,318711,0.872 +318721,315955,1.322 +315927,318236,1.222 +318711,318721,0.233 +318236,317843,1.22 +315955,315938,0.239 +315969,315927,0.256 +312346,312326,0.255 +312343,312439,0.283 +312439,313114,1.85 +313111,317853,1.031 +313114,313111,0.218 +317852,312346,3.208 +316174,317852,0.557 +317853,313132,0.751 +316085,316174,1.369 +313132,316084,1.171 +315982,316085,1.095 +316084,315993,1.108 +315993,316009,0.255 +316001,315982,0.17 +316009,316018,0.782 +316009,316019,0.782 +316032,316001,1.493 +316018,316045,0.795 +316019,316045,0.795 +313487,316032,1.195 +317064,316032,1.195 +316045,316063,1.275 +316045,316064,1.275 +314165,313487,1.749 +314165,317064,1.749 +315880,313487,1.749 +315880,317064,1.749 +316063,316387,2.373 +316063,316388,2.373 +316064,316387,2.373 +316064,316388,2.373 +314491,314165,2.439 +314491,315880,2.439 +315882,314165,2.439 +315882,315880,2.439 +316387,316328,1.687 +316387,317168,1.687 +316388,316328,1.687 +316388,317168,1.687 +314485,314491,0.221 +314485,315882,0.221 +315883,314491,0.221 +315883,315882,0.221 +316328,316314,0.294 +316328,317171,0.294 +317168,316314,0.294 +317168,317171,0.294 +314433,314485,2.939 +314433,315883,2.939 +315886,314485,2.939 +315886,315883,2.939 +316314,314460,2.861 +316314,315866,2.861 +317171,314460,2.861 +317171,315866,2.861 +314460,314446,0.259 +314460,315867,0.259 +315866,314446,0.259 +315866,315867,0.259 +314419,314433,0.249 +314419,315886,0.249 +315887,314433,0.249 +315887,315886,0.249 +313438,314419,3.248 +313438,315887,3.248 +315891,314419,3.248 +315891,315887,3.248 +313450,313438,0.313 +313450,315891,0.313 +315892,313438,0.313 +315892,315891,0.313 +314446,318665,5.476 +314446,318666,5.476 +315867,318665,5.476 +315867,318666,5.476 +313493,313450,2.467 +313493,315892,2.467 +318665,316414,0.571 +318666,316414,0.571 +313512,313493,0.205 +316414,318620,0.569 +318611,313512,0.483 +318612,313512,0.483 +316438,318611,1.93 +316438,318612,1.93 +318656,318611,1.93 +318656,318612,1.93 +318620,318649,2.358 +318620,318650,2.358 +316451,316438,0.212 +316451,318656,0.212 +318636,316438,0.212 +318636,318656,0.212 +318815,316451,1.467 +318815,318636,1.467 +318816,316451,1.467 +318816,318636,1.467 +318649,318800,1.399 +318649,318801,1.399 +318650,318800,1.399 +318650,318801,1.399 +318800,318832,0.32 +318800,318844,0.32 +318801,318832,0.32 +318801,318844,0.32 +318772,318815,0.707 +318772,318816,0.707 +318773,318815,0.707 +318773,318816,0.707 +318832,318764,0.302 +318832,318775,0.302 +318844,318764,0.302 +318844,318775,0.302 +318787,318772,0.448 +318787,318773,0.448 +318788,318772,0.448 +318788,318773,0.448 +318179,318753,1.742 +318753,317752,5.762 +317166,317157,0.226 +317157,314217,2.283 +314217,318787,3.717 +314217,318788,3.717 +318764,317752,6.794 +318775,317752,6.794 +314217,318180,4.577 +318180,318401,5.767 +318401,318421,0.314 +318432,318412,0.229 +318421,317081,3.665 +317088,318432,3.762 +317146,317143,0.315 +317139,317141,0.286 +317143,317862,1.305 +317861,317139,1.4 +317869,317861,1.606 +317870,317861,1.606 +317862,313190,2.891 +317862,314730,2.891 +317862,315828,2.891 +317862,315830,2.891 +313190,314697,0.788 +313190,314698,0.788 +313190,315831,0.788 +314730,314697,0.788 +314730,314698,0.788 +314730,315831,0.788 +315828,314697,0.788 +315828,314698,0.788 +315828,315831,0.788 +315830,314697,0.788 +315830,314698,0.788 +315830,315831,0.788 +314697,313166,0.739 +314697,315827,0.739 +314698,313166,0.739 +314698,315827,0.739 +315831,313166,0.739 +315831,315827,0.739 +314689,317869,2.841 +314689,317870,2.841 +315833,317869,2.841 +315833,317870,2.841 +313166,313172,0.26 +313166,315823,0.26 +315827,313172,0.26 +315827,315823,0.26 +313172,313178,0.498 +313172,315826,0.498 +315823,313178,0.498 +315823,315826,0.498 +317933,314689,1.044 +317933,315833,1.044 +317934,314689,1.044 +317934,315833,1.044 +313178,317956,0.893 +313178,317960,0.893 +315826,317956,0.893 +315826,317960,0.893 +317956,317947,0.334 +317956,317948,0.334 +317960,317947,0.334 +317960,317948,0.334 +312570,317933,1.78 +312570,317934,1.78 +314625,317933,1.78 +314625,317934,1.78 +315872,317933,1.78 +315872,317934,1.78 +317947,315834,0.864 +317948,315834,0.864 +315834,312648,1.022 +315834,315841,1.022 +316399,312570,1.153 +316399,314625,1.153 +316399,315872,1.153 +316400,312570,1.153 +316400,314625,1.153 +316400,315872,1.153 +314681,316399,0.136 +314681,316400,0.136 +315835,316399,0.136 +315835,316400,0.136 +314230,314241,0.295 +314230,315908,0.295 +315907,314241,0.295 +315907,315908,0.295 +314379,314248,0.338 +314379,315904,0.338 +315903,314248,0.338 +315903,315904,0.338 +313551,313552,0.341 +313551,315901,0.341 +315900,313552,0.341 +315900,315901,0.341 +313349,313344,0.336 +313349,315911,0.336 +315910,313344,0.336 +315910,315911,0.336 +312139,311903,0.295 +312139,311930,0.295 +311903,318282,0.6 +311930,318282,0.6 +318282,312098,0.337 +318282,316364,0.337 +318022,318102,1.495 +313979,318022,2.016 +318113,314013,3.645 +314013,314013,0.0 +314994,315042,0.922 +312134,312133,1.771 +315060,312132,2.068 +313552,314379,3.082 +313552,315903,3.082 +315901,314379,3.082 +315901,315903,3.082 +314241,313349,3.383 +314241,315910,3.383 +315908,313349,3.383 +315908,315910,3.383 +318550,313551,3.753 +318550,315900,3.753 +318551,313551,3.753 +318551,315900,3.753 +313344,313339,3.375 +313344,315913,3.375 +315911,313339,3.375 +315911,315913,3.375 +316271,318550,1.341 +316271,318551,1.341 +316280,318550,1.341 +316280,318551,1.341 +313339,316279,1.329 +313339,316281,1.329 +315913,316279,1.329 +315913,316281,1.329 +313055,316271,0.496 +313055,316280,0.496 +316279,313082,0.486 +316279,315914,0.486 +316281,313082,0.486 +316281,315914,0.486 +313082,313080,0.231 +313082,315915,0.231 +315914,313080,0.231 +315914,315915,0.231 +313080,313037,7.58 +315915,313037,7.58 +313037,313035,0.257 +314042,314036,0.181 +314042,315895,0.181 +315894,314036,0.181 +315894,315895,0.181 +314036,313055,5.195 +315895,313055,5.195 +313658,314042,3.862 +313658,315894,3.862 +313035,313010,2.027 +313010,312188,2.308 +312188,313005,0.478 +312188,318742,0.478 +314668,313658,3.695 +313005,313003,0.152 +313005,318744,0.152 +318742,313003,0.152 +318742,318744,0.152 +314711,314668,0.181 +314712,314668,0.181 +313003,318218,1.047 +318744,318218,1.047 +313852,314711,1.008 +313852,314712,1.008 +318218,313846,0.035 +318528,313000,0.202 +312133,317814,0.887 +317815,315060,0.883 +317814,313159,0.861 +314652,317815,0.859 +313159,314876,4.522 +314877,314652,4.511 +314876,314886,0.263 +314886,314899,1.412 +314899,314909,0.47 +318599,314877,2.155 +314909,314923,2.119 +318443,318599,2.122 +314923,314936,1.036 +318626,318443,1.042 +314936,314968,1.964 +318680,318626,1.971 +314955,314982,0.551 +314982,315017,0.38 +318674,318484,0.675 +315017,318632,1.363 +315030,318674,1.744 +318632,315054,1.318 +315042,315030,1.25 +315054,312343,3.579 +312326,314994,3.004 +315054,315969,4.115 +315938,315006,3.155 +315938,312343,4.099 +315938,317885,6.996 +317884,315804,1.552 +315804,312343,5.162 +315804,315006,4.28 +315804,315969,5.875 +317884,318383,10.194 +318366,318354,0.164 +318383,318451,0.835 +313772,318366,0.925 +318354,318142,1.932 +318142,318126,0.63 +313184,318586,0.233 +318593,312946,0.416 +316114,313184,0.232 +312944,316114,0.151 +312946,312942,0.606 +316118,312944,0.445 +312940,316118,1.15 +312942,312900,1.346 +312898,312940,1.025 +312900,316129,0.831 +312896,312898,0.525 +316129,314598,0.531 +312895,312896,0.755 +314598,313204,1.656 +312807,312895,0.749 +312804,312807,0.582 +313204,313197,0.429 +312782,312804,0.554 +313197,318540,0.634 +312694,312745,0.617 +312745,313951,0.95 +313951,314121,0.502 +312857,312856,0.508 +314121,312865,1.131 +312865,314147,0.496 +312771,312757,0.139 +312757,312857,1.477 +312689,312694,0.747 +312220,312103,0.301 +312236,312220,2.057 +314371,314559,0.271 +314559,313852,5.255 +313846,318528,2.512 +312264,318493,0.994 +314147,312858,0.543 +312858,312782,0.789 +318540,314157,0.675 +314157,312771,0.565 +312856,312854,1.609 +312856,315860,1.609 +312854,312852,1.599 +312854,315861,1.599 +312854,316429,1.599 +315860,312852,1.599 +315860,315861,1.599 +315860,316429,1.599 +313956,312689,0.756 +315879,312689,0.756 +312098,314371,6.036 +316364,314371,6.036 +312103,312010,2.757 +314968,316073,2.986 +314968,316074,2.986 +316073,314955,1.218 +316074,314955,1.218 +318484,318680,4.066 +318451,312139,4.676 +312010,313772,4.274 +312648,312651,0.182 +312648,315842,0.182 +315841,312651,0.182 +315841,315842,0.182 +312651,312233,1.44 +312651,315836,1.44 +315842,312233,1.44 +315842,315836,1.44 +314617,314681,1.185 +314617,315835,1.185 +315837,314681,1.185 +315837,315835,1.185 +312233,312382,0.628 +312233,315838,0.628 +315836,312382,0.628 +315836,315838,0.628 +314501,314617,0.714 +314501,315837,0.714 +315839,314617,0.714 +315839,315837,0.714 +312382,312386,0.549 +312382,315822,0.549 +315838,312386,0.549 +315838,315822,0.549 +317902,314501,1.278 +317902,315839,1.278 +317903,314501,1.278 +317903,315839,1.278 +312386,312388,0.651 +312386,315843,0.651 +315822,312388,0.651 +315822,315843,0.651 +312388,317909,0.445 +312388,317910,0.445 +315843,317909,0.445 +315843,317910,0.445 +312420,317902,0.448 +312420,317903,0.448 +315846,317902,0.448 +315846,317903,0.448 +317909,312421,0.589 +317909,315847,0.589 +317910,312421,0.589 +317910,315847,0.589 +317974,312420,0.588 +317974,315846,0.588 +317998,312420,0.588 +317998,315846,0.588 +312421,312422,0.888 +312421,315849,0.888 +315847,312422,0.888 +315847,315849,0.888 +312425,312513,0.753 +312425,315852,0.753 +315850,312513,0.753 +315850,315852,0.753 +312422,312425,0.379 +312422,315850,0.379 +315849,312425,0.379 +315849,315850,0.379 +318028,317974,2.099 +318028,317998,2.099 +318029,317974,2.099 +318029,317998,2.099 +312513,312514,0.895 +312513,315853,0.895 +315852,312514,0.895 +315852,315853,0.895 +312514,312520,0.319 +312514,315873,0.319 +315853,312520,0.319 +315853,315873,0.319 +312517,318028,0.96 +312517,318029,0.96 +315824,318028,0.96 +315824,318029,0.96 +312520,312523,0.813 +312520,315854,0.813 +315873,312523,0.813 +315873,315854,0.813 +318035,312517,1.13 +318035,315824,1.13 +318036,312517,1.13 +318036,315824,1.13 +312523,312525,0.587 +312523,315855,0.587 +315854,312525,0.587 +315854,315855,0.587 +312525,312527,0.346 +312525,315856,0.346 +315855,312527,0.346 +315855,315856,0.346 +313144,318035,0.45 +313144,318036,0.45 +315858,318035,0.45 +315858,318036,0.45 +312530,313144,1.233 +312530,315858,1.233 +315857,313144,1.233 +315857,315858,1.233 +317895,313144,1.233 +317895,315858,1.233 +317896,313144,1.233 +317896,315858,1.233 +312527,312562,1.873 +312527,315825,1.873 +315856,312562,1.873 +315856,315825,1.873 +312562,318565,0.348 +312562,318566,0.348 +315825,318565,0.348 +315825,318566,0.348 +312564,312530,1.343 +312564,315857,1.343 +312564,317895,1.343 +312564,317896,1.343 +315874,312530,1.343 +315874,315857,1.343 +315874,317895,1.343 +315874,317896,1.343 +312566,312564,0.941 +312566,315874,0.941 +315875,312564,0.941 +315875,315874,0.941 +318565,318575,0.942 +318565,318576,0.942 +318566,318575,0.942 +318566,318576,0.942 +318575,313956,0.847 +318575,315879,0.847 +318576,313956,0.847 +318576,315879,0.847 +312852,312566,0.73 +312852,315875,0.73 +315861,312566,0.73 +315861,315875,0.73 +316429,312566,0.73 +316429,315875,0.73 +314013,314025,0.252 +314025,318076,1.965 +318077,313979,2.371 +318076,318053,2.881 +318052,318077,2.875 +318053,314548,5.355 +314548,318135,0.586 +314548,318736,0.586 +318126,318052,5.382 +318135,318383,2.183 +318736,318383,2.183 diff --git a/data/PEMS03/PEMS03.npz b/data/PEMS03/PEMS03.npz new file mode 100644 index 0000000..b448715 Binary files /dev/null and b/data/PEMS03/PEMS03.npz differ diff --git a/data/PEMS03/PEMS03.txt b/data/PEMS03/PEMS03.txt new file mode 100644 index 0000000..4d5aacb --- /dev/null +++ b/data/PEMS03/PEMS03.txt @@ -0,0 +1,358 @@ +313344 +313349 +313438 +313450 +313487 +313493 +313512 +313551 +313552 +317752 +313658 +317814 +317815 +317842 +317843 +317852 +317853 +315804 +317861 +317862 +313772 +317869 +315822 +317870 +315823 +315824 +315826 +315827 +315828 +315825 +315830 +315831 +315833 +315834 +315835 +317884 +317885 +315836 +315837 +315838 +315841 +315842 +315839 +315843 +315846 +315847 +317895 +315849 +315850 +317896 +315852 +315853 +317902 +317903 +315854 +315855 +315856 +315858 +315860 +315861 +317909 +317910 +315857 +315866 +315867 +315872 +315873 +315874 +315875 +315879 +315880 +315882 +315883 +317933 +315886 +315887 +317934 +315891 +315892 +315894 +315895 +313846 +317947 +313852 +315900 +317948 +315901 +315904 +315903 +315907 +317956 +315908 +315910 +315911 +317960 +315913 +315914 +315915 +317974 +315927 +315938 +317998 +315955 +315969 +318022 +318028 +318029 +315982 +318035 +318036 +315993 +311903 +313951 +316001 +313956 +318053 +318052 +316009 +316018 +316019 +311930 +313979 +318076 +318077 +316032 +316045 +318102 +314013 +316063 +316064 +318113 +316073 +316074 +314025 +318126 +316084 +316085 +314036 +318135 +314042 +318142 +312010 +316114 +316118 +316129 +318179 +318180 +314121 +318218 +316174 +318236 +312098 +314147 +312103 +314157 +314165 +312132 +312133 +312134 +318282 +312139 +314217 +316271 +314230 +316279 +316280 +316281 +312188 +314241 +314248 +318354 +316314 +312220 +318366 +316328 +312233 +312236 +318383 +318401 +312264 +318412 +316364 +318421 +318432 +316387 +316388 +318443 +316399 +316400 +318451 +316414 +314371 +312326 +314379 +316429 +318484 +316438 +312343 +312346 +318493 +316451 +314419 +312382 +318528 +314433 +312386 +312388 +318540 +314446 +318550 +318551 +314460 +312420 +312421 +312422 +318565 +318566 +312425 +318575 +318576 +314485 +312439 +318586 +314491 +318593 +314501 +318599 +318611 +318612 +318620 +318626 +318632 +318636 +314548 +318649 +318650 +314559 +318656 +312513 +312514 +312517 +312520 +318665 +318666 +312523 +312525 +312527 +318674 +312530 +318680 +314598 +312562 +312564 +312566 +318711 +314617 +312570 +318721 +314625 +318736 +318742 +318744 +314652 +318753 +318764 +314668 +318772 +318773 +318775 +314681 +314689 +318787 +318788 +312648 +314697 +314698 +312651 +318800 +318801 +314711 +314712 +318815 +318816 +314730 +318832 +312689 +312694 +318844 +312745 +312757 +312771 +312782 +312804 +312807 +314876 +314877 +314886 +314899 +312852 +312854 +312856 +312857 +312858 +314909 +312865 +314923 +314936 +312895 +312896 +312898 +312900 +314955 +314968 +314982 +312940 +312942 +312944 +314994 +312946 +315006 +317064 +315017 +315030 +317081 +317088 +315042 +313000 +313003 +313005 +315054 +313010 +315060 +313035 +313037 +317139 +317141 +317143 +317146 +313055 +317157 +317166 +317168 +317171 +313080 +313082 +313111 +313114 +313132 +313144 +313159 +313166 +313172 +313178 +313184 +313190 +313197 +313204 +313339 \ No newline at end of file diff --git a/data/PEMS03/PEMS03_dtw_distance.npy b/data/PEMS03/PEMS03_dtw_distance.npy new file mode 100644 index 0000000..20c183a Binary files /dev/null and b/data/PEMS03/PEMS03_dtw_distance.npy differ diff --git a/data/PEMS03/PEMS03_spatial_distance.npy b/data/PEMS03/PEMS03_spatial_distance.npy new file mode 100644 index 0000000..295adf7 Binary files /dev/null and b/data/PEMS03/PEMS03_spatial_distance.npy differ diff --git a/data/PEMS04/PEMS04.csv b/data/PEMS04/PEMS04.csv new file mode 100644 index 0000000..2569623 --- /dev/null +++ b/data/PEMS04/PEMS04.csv @@ -0,0 +1,341 @@ +from,to,cost +73,5,352.6 +5,154,347.2 +154,263,392.9 +263,56,440.8 +56,96,374.6 +96,42,378.1 +42,58,364.6 +58,95,476.8 +95,72,480.1 +72,271,419.5 +271,68,251.1 +134,107,344.0 +107,130,862.1 +130,129,482.5 +227,167,1425.7 +167,298,415.7 +298,209,425.5 +209,146,519.6 +146,170,494.7 +170,173,400.7 +173,117,372.4 +117,0,573.5 +0,92,398.0 +92,243,667.3 +243,62,357.3 +203,80,1071.1 +80,97,834.1 +97,28,531.4 +28,57,327.7 +57,55,925.2 +55,223,382.7 +223,143,309.5 +143,269,329.1 +269,290,362.0 +290,110,425.6 +110,121,388.4 +121,299,327.1 +299,293,326.1 +293,148,534.9 +148,150,341.1 +150,152,354.5 +98,70,315.1 +70,255,1308.8 +128,131,672.4 +131,132,803.8 +132,133,363.2 +242,18,789.9 +18,43,422.6 +43,118,449.7 +118,207,448.7 +207,169,459.6 +169,127,422.2 +127,208,450.6 +208,297,426.0 +297,168,430.0 +168,166,395.1 +166,226,1027.2 +13,26,341.5 +26,94,408.2 +94,219,612.7 +219,217,359.6 +217,31,411.9 +31,215,478.7 +215,111,2685.8 +111,116,1194.2 +116,36,409.1 +36,78,414.7 +301,20,446.0 +273,138,326.7 +138,284,489.7 +284,114,464.9 +114,245,397.5 +245,48,376.8 +48,206,402.5 +206,144,356.9 +144,172,358.4 +237,24,452.4 +304,35,378.0 +35,115,503.6 +115,86,1228.5 +86,214,2712.1 +214,27,471.1 +27,216,419.6 +216,218,359.8 +218,76,356.6 +76,238,424.6 +238,50,527.9 +91,52,424.1 +52,75,350.2 +75,171,397.2 +44,7,380.6 +256,1,1149.5 +1,46,448.5 +212,270,328.7 +270,32,352.3 +32,10,406.7 +3,247,424.5 +247,249,609.8 +249,225,515.0 +261,260,294.1 +260,259,340.6 +259,103,360.7 +103,302,346.7 +302,104,1093.8 +104,71,363.7 +71,88,360.2 +88,268,372.8 +268,240,420.3 +240,9,451.3 +9,239,358.1 +239,23,441.0 +23,22,319.8 +22,49,447.5 +276,258,427.0 +155,157,353.4 +157,158,331.7 +158,286,383.8 +286,102,330.1 +102,285,367.8 +285,15,348.8 +15,8,352.1 +8,300,397.9 +300,34,394.2 +34,161,359.8 +161,125,426.1 +125,235,413.7 +235,163,409.7 +163,236,368.2 +236,250,460.1 +250,122,391.6 +122,252,393.6 +252,69,380.0 +69,39,338.1 +39,234,361.3 +234,82,356.8 +82,274,748.3 +274,175,357.0 +175,177,360.6 +177,213,316.1 +213,179,310.7 +179,33,328.3 +33,181,333.0 +181,183,563.8 +183,184,331.4 +184,185,375.4 +185,254,332.5 +254,188,333.5 +188,141,381.6 +141,278,302.4 +278,289,393.7 +289,190,329.5 +190,192,320.7 +192,194,358.9 +194,196,300.5 +196,198,264.8 +198,180,293.3 +266,135,325.4 +135,54,379.8 +54,231,392.3 +231,66,828.6 +66,59,423.2 +59,232,802.7 +112,14,357.6 +14,89,334.2 +145,228,454.6 +228,205,354.0 +205,244,386.4 +244,100,437.8 +100,303,449.2 +303,136,431.2 +136,305,413.2 +305,139,355.4 +153,151,330.7 +151,149,377.7 +149,295,408.2 +295,291,334.3 +291,294,341.2 +294,77,362.2 +77,109,383.8 +109,292,353.4 +292,147,371.0 +147,29,486.6 +29,222,292.7 +222,79,1270.1 +79,90,981.4 +90,2,572.5 +2,81,318.6 +81,204,1023.1 +224,229,520.6 +229,4,315.9 +4,246,312.3 +246,11,418.5 +93,87,412.1 +87,74,361.3 +74,165,305.1 +165,241,347.4 +241,108,404.0 +108,137,345.7 +137,123,352.7 +123,37,341.4 +37,84,373.4 +84,101,345.3 +101,221,394.3 +221,220,574.3 +220,201,389.5 +201,211,274.9 +211,210,356.1 +210,262,373.4 +262,306,345.1 +6,83,483.2 +200,199,317.7 +199,197,309.3 +197,195,313.3 +195,193,271.7 +193,191,322.3 +191,189,312.4 +189,280,420.9 +280,279,384.8 +279,140,323.4 +140,187,341.2 +187,186,410.0 +186,296,354.2 +296,126,367.6 +126,182,490.7 +182,248,314.6 +248,25,352.9 +25,178,307.1 +178,142,418.2 +142,176,341.3 +176,174,344.9 +174,113,755.8 +113,124,234.9 +124,253,385.9 +253,30,310.6 +30,67,358.9 +67,164,413.3 +164,119,387.3 +119,120,407.6 +120,61,395.7 +61,19,496.4 +19,162,412.1 +162,51,472.2 +51,160,440.1 +160,159,434.5 +159,64,378.4 +64,287,353.1 +287,267,375.5 +267,288,369.7 +288,283,376.8 +283,281,392.2 +281,282,360.2 +282,156,384.4 +60,38,394.1 +38,65,415.0 +65,230,435.8 +230,47,353.0 +47,265,341.8 +265,264,334.1 +99,53,248.3 +53,45,389.9 +45,12,404.3 +12,41,378.3 +41,272,365.0 +272,106,366.7 +106,17,360.6 +17,63,424.4 +63,202,389.6 +202,16,328.2 +16,40,328.8 +40,105,355.1 +21,233,332.0 +233,277,399.4 +257,275,363.3 +235,264,168.6 +264,163,293.4 +19,266,87.7 +266,162,327.4 +122,70,313.4 +70,252,129.3 +164,70,93.4 +70,119,385.3 +122,1,265.2 +1,252,275.9 +252,46,271.5 +164,1,221.0 +1,119,319.9 +119,46,444.4 +179,128,441.7 +128,33,195.8 +246,65,372.6 +65,11,324.6 +11,230,311.0 +3,230,311.9 +65,247,373.6 +246,59,346.1 +231,11,312.5 +3,231,313.4 +231,247,203.2 +247,59,347.1 +47,35,332.5 +35,265,519.6 +265,115,77.0 +135,115,153.2 +35,54,352.5 +47,36,252.5 +116,265,78.2 +135,116,154.4 +116,54,242.2 +54,36,267.1 +240,10,271.4 +10,9,570.6 +240,91,82.3 +108,91,351.7 +91,137,98.3 +208,104,393.0 +104,127,76.8 +209,104,393.1 +104,146,135.9 +207,251,129.0 +251,118,336.7 +118,85,195.8 +85,207,376.2 +57,242,313.2 +242,28,23.1 +57,243,312.9 +243,28,22.2 +109,276,278.1 +276,292,109.6 +143,133,329.8 +133,269,75.3 +97,68,225.3 +68,57,203.6 +79,99,78.0 +27,98,7.7 +27,46,163.8 +46,216,353.6 +217,98,411.7 +98,31,3.2 +217,46,354.0 +46,31,163.6 diff --git a/data/PEMS04/PEMS04.npz b/data/PEMS04/PEMS04.npz new file mode 100644 index 0000000..a1a39ea Binary files /dev/null and b/data/PEMS04/PEMS04.npz differ diff --git a/data/PEMS04/PEMS04_dtw_distance.npy b/data/PEMS04/PEMS04_dtw_distance.npy new file mode 100644 index 0000000..b3239ce Binary files /dev/null and b/data/PEMS04/PEMS04_dtw_distance.npy differ diff --git a/data/PEMS04/PEMS04_spatial_distance.npy b/data/PEMS04/PEMS04_spatial_distance.npy new file mode 100644 index 0000000..e38f30e Binary files /dev/null and b/data/PEMS04/PEMS04_spatial_distance.npy differ diff --git a/data/PEMS07/PEMS07.csv b/data/PEMS07/PEMS07.csv new file mode 100644 index 0000000..0a5a3bb --- /dev/null +++ b/data/PEMS07/PEMS07.csv @@ -0,0 +1,867 @@ +from,to,cost +721,445,0.79 +542,480,2.575 +770,702,0.9259999999999999 +32,266,0.596 +34,56,0.628 +251,297,0.725 +233,41,1.6130000000000002 +680,129,0.596 +449,555,3.909 +871,763,1.1340000000000001 +175,205,1.295 +739,241,0.802 +126,720,1.348 +626,709,0.589 +97,397,3.4210000000000003 +222,734,0.309 +101,273,1.445 +408,295,0.897 +509,697,0.721 +391,576,4.126 +506,822,1.6440000000000001 +785,69,0.512 +603,245,0.852 +245,596,3.8510000000000004 +35,841,0.8440000000000001 +249,120,0.56 +134,263,1.715 +448,638,1.022 +123,635,0.725 +635,155,0.966 +656,748,0.593 +220,136,1.796 +414,656,5.859 +579,651,3.7260000000000004 +20,395,0.402 +511,20,0.772 +880,108,0.58 +574,743,0.76 +573,152,1.031 +793,72,2.219 +446,793,0.8 +562,446,1.631 +317,679,0.47700000000000004 +600,317,0.64 +585,36,14.353 +838,585,4.0760000000000005 +838,14,0.831 +812,19,0.598 +863,591,2.504 +863,792,1.88 +601,787,1.9680000000000002 +223,499,8.095 +411,18,0.5489999999999999 +727,773,0.774 +178,407,1.786 +247,114,2.929 +247,605,2.435 +705,619,0.319 +146,198,0.5 +552,602,0.965 +210,862,1.023 +702,643,0.934 +801,239,0.634 +686,721,0.5529999999999999 +239,805,1.4869999999999999 +654,554,0.7929999999999999 +186,235,0.66 +643,186,0.226 +765,770,0.593 +266,34,0.742 +471,312,0.69 +56,425,0.9329999999999999 +577,269,0.385 +604,251,1.032 +128,389,0.802 +297,755,0.631 +844,393,0.522 +41,566,0.733 +341,844,1.594 +731,341,0.6859999999999999 +747,570,0.606 +607,139,2.178 +387,607,0.79 +569,387,1.064 +3,367,2.072 +29,569,0.191 +800,29,1.187 +315,800,1.4169999999999998 +637,315,0.626 +137,780,0.599 +429,819,0.9520000000000001 +58,564,0.75 +325,610,1.046 +795,495,1.31 +807,853,0.23800000000000002 +118,472,0.805 +853,177,0.772 +177,99,0.08 +99,287,1.31 +287,672,1.125 +300,704,0.33799999999999997 +704,536,1.24 +672,306,1.16 +153,300,1.294 +306,144,1.1540000000000001 +51,153,1.172 +144,847,1.609 +440,51,1.3730000000000002 +847,424,2.103 +322,440,1.521 +424,282,0.845 +729,322,0.557 +250,729,1.077 +282,660,0.8140000000000001 +191,250,1.016 +874,83,1.238 +636,191,0.29600000000000004 +83,355,1.74 +93,636,1.238 +351,93,1.483 +351,112,0.895 +346,680,0.268 +717,346,0.594 +514,15,0.405 +653,66,3.656 +15,204,0.8009999999999999 +204,288,1.159 +830,227,0.207 +706,126,0.272 +572,830,0.272 +720,783,1.1079999999999999 +451,764,0.529 +783,23,0.35 +244,675,0.56 +709,224,0.779 +383,244,0.589 +95,383,0.414 +867,95,0.72 +105,517,0.273 +406,354,0.401 +71,437,0.996 +768,132,1.874 +646,216,1.031 +781,222,3.315 +37,781,0.145 +216,170,1.341 +627,447,0.135 +170,640,0.7829999999999999 +586,627,1.359 +640,620,0.8190000000000001 +237,586,0.8009999999999999 +620,501,1.6380000000000001 +668,237,0.8170000000000001 +501,4,0.256 +845,668,1.621 +253,845,3.924 +683,852,2.716 +513,710,0.192 +818,513,0.7709999999999999 +550,44,0.736 +648,375,0.22399999999999998 +375,408,0.64 +697,101,0.882 +295,676,0.866 +821,228,0.6890000000000001 +174,156,0.802 +166,821,0.14400000000000002 +181,166,0.64 +124,181,0.24100000000000002 +791,372,0.747 +261,124,0.513 +372,173,0.305 +623,261,1.064 +412,623,2.0869999999999997 +454,412,2.614 +299,657,2.855 +138,454,2.474 +657,581,0.593 +581,391,0.884 +822,138,4.345 +339,506,0.578 +280,320,0.7709999999999999 +589,394,0.785 +394,232,0.6559999999999999 +61,782,0.8340000000000001 +232,785,0.995 +305,61,0.7559999999999999 +381,149,0.344 +762,722,0.889 +726,762,0.29 +149,701,0.598 +687,726,0.6509999999999999 +545,606,0.273 +421,217,0.8190000000000001 +606,368,0.929 +368,362,0.7659999999999999 +837,421,1.186 +294,779,0.239 +195,140,0.624 +458,195,0.24 +779,708,0.8340000000000001 +708,659,0.20800000000000002 +27,458,0.898 +659,868,0.544 +213,603,0.941 +283,150,0.652 +841,283,0.9079999999999999 +523,35,1.235 +468,688,0.336 +519,28,2.052 +688,751,0.7070000000000001 +483,102,1.945 +738,270,0.319 +270,134,0.337 +120,483,0.368 +561,249,1.537 +263,848,0.305 +597,561,0.336 +848,460,1.237 +460,55,0.239 +777,452,0.20800000000000002 +55,206,1.492 +113,777,1.347 +206,516,0.368 +516,448,0.978 +57,130,0.7829999999999999 +155,614,0.625 +614,598,0.41700000000000004 +363,655,1.746 +117,103,1.235 +655,345,4.065 +255,117,2.484 +172,255,0.562 +345,220,0.593 +748,369,1.88 +136,286,1.444 +714,349,0.8390000000000001 +302,511,0.37 +349,184,0.55 +628,302,0.789 +184,880,0.905 +743,628,0.726 +226,431,0.431 +526,574,0.955 +431,491,0.493 +491,274,0.618 +122,526,0.496 +823,122,0.62 +274,333,0.665 +333,94,0.316 +176,823,0.667 +466,176,0.318 +94,207,0.43 +685,466,0.413 +207,858,0.207 +356,328,0.7959999999999999 +441,470,0.787 +453,356,0.456 +520,856,0.7879999999999999 +859,324,0.6629999999999999 +236,276,0.66 +84,385,0.34299999999999997 +723,84,0.7879999999999999 +386,723,1.03 +152,505,0.578 +430,866,1.475 +73,488,1.235 +285,318,0.48100000000000004 +30,54,0.672 +465,662,0.48 +2,0,0.8170000000000001 +116,427,0.623 +114,496,0.792 +42,537,0.64 +277,419,0.562 +831,618,1.671 +490,277,1.3 +618,500,1.574 +365,490,1.7830000000000001 +500,771,0.546 +9,265,0.835 +630,193,1.689 +786,9,1.621 +193,80,1.607 +259,786,0.851 +80,857,1.8419999999999999 +167,332,1.0390000000000001 +582,203,0.805 +673,12,0.321 +599,292,1.7890000000000001 +732,582,0.225 +203,209,0.307 +12,733,0.37 +68,91,0.679 +594,371,2.715 +524,599,1.412 +499,430,1.9869999999999999 +168,832,1.456 +443,301,0.861 +301,70,1.643 +804,168,1.128 +459,804,1.454 +70,849,0.968 +289,760,0.504 +750,242,0.32299999999999995 +835,727,0.547 +18,833,10.729000000000001 +773,772,0.9990000000000001 +772,171,1.3330000000000002 +171,303,0.9009999999999999 +303,528,0.738 +528,310,2.114 +310,178,1.76 +407,247,1.9580000000000002 +525,438,8.827 +39,359,1.6059999999999999 +565,284,0.24 +214,264,1.5 +716,163,1.5130000000000001 +667,664,0.965 +619,799,0.561 +481,647,3.622 +96,185,1.8030000000000002 +378,481,1.505 +185,160,1.879 +160,331,1.3030000000000002 +6,146,1.16 +761,649,0.446 +649,473,0.557 +133,62,0.972 +602,90,0.978 +836,187,2.205 +164,319,2.318 +88,164,0.14300000000000002 +187,335,0.14300000000000002 +335,754,2.015 +827,88,1.7380000000000002 +749,827,3.699 +862,749,1.048 +735,45,0.7759999999999999 +670,194,2.263 +694,77,0.382 +571,197,1.0290000000000001 +197,658,0.359 +532,450,1.391 +439,634,0.39 +24,532,0.775 +559,560,3.983 +810,413,1.04 +865,869,0.584 +110,404,1.083 +87,314,1.376 +393,128,0.546 +563,795,1.554 +592,510,0.465 +242,724,0.321 +764,572,0.802 +156,791,0.625 +173,784,2.336 +751,738,2.222 +102,519,1.253 +452,597,1.314 +130,113,1.588 +638,703,5.313 +598,363,1.235 +505,430,0.767 +850,259,0.802 +854,850,0.209 +612,854,0.451 +671,588,1.055 +754,587,3.835 +72,530,0.8320000000000001 +695,7,1.495 +311,695,1.864 +462,836,0.24 +21,531,2.9560000000000004 +323,279,1.234 +194,75,1.185 +304,411,0.532 +151,304,0.79 +872,151,0.594 +438,872,0.7240000000000001 +587,877,1.655 +286,579,2.611 +369,172,0.882 +797,406,0.272 +11,24,0.6809999999999999 +549,364,0.802 +389,577,1.032 +564,637,1.2229999999999999 +780,429,0.535 +674,58,0.7340000000000001 +495,674,0.585 +436,563,2.115 +165,807,0.922 +766,592,0.285 +361,864,0.9359999999999999 +851,280,5.792999999999999 +558,27,0.324 +376,663,1.756 +290,750,0.828 +724,133,0.977 +90,761,0.47200000000000003 +224,797,0.8270000000000001 +826,60,1.365 +435,489,1.21 +60,109,4.113 +512,435,1.3730000000000002 +125,512,0.7070000000000001 +639,97,0.976 +699,768,0.307 +734,71,4.0089999999999995 +426,691,3.0460000000000003 +26,508,0.722 +873,527,0.7859999999999999 +713,449,0.326 +808,717,0.804 +864,808,0.337 +326,826,1.207 +725,405,1.929 +179,105,0.606 +192,52,8.842 +314,542,2.59 +757,796,0.223 +796,736,0.72 +736,32,1.034 +566,67,0.541 +67,747,1.003 +610,147,1.093 +147,25,2.195 +555,840,0.48200000000000004 +162,568,1.909 +568,739,0.92 +814,344,4.592 +344,494,10.337 +82,731,0.609 +199,82,1.006 +472,104,1.27 +536,118,1.93 +763,621,5.17 +474,871,0.8029999999999999 +358,474,0.483 +388,17,0.14400000000000002 +205,388,1.466 +64,492,1.8869999999999998 +49,246,4.502 +767,49,9.985 +332,811,0.14300000000000002 +475,730,0.48100000000000004 +605,308,0.483 +157,417,0.529 +752,323,0.391 +75,752,1.143 +271,670,0.865 +855,200,0.899 +200,442,0.9329999999999999 +650,68,3.427 +196,673,0.885 +533,196,0.306 +229,392,0.532 +486,229,0.305 +350,26,0.593 +135,350,0.319 +65,63,0.20800000000000002 +615,65,0.305 +215,681,0.374 +401,215,0.306 +737,231,0.39899999999999997 +231,373,0.35 +81,774,0.687 +209,131,0.599 +190,188,0.304 +188,229,5.2 +188,467,0.578 +527,106,0.304 +106,309,0.914 +252,556,0.29100000000000004 +556,127,0.763 +778,875,0.43200000000000005 +875,493,0.35200000000000004 +660,874,0.503 +331,290,0.451 +319,552,0.722 +473,6,0.883 +870,801,0.795 +805,549,1.229 +367,137,1.787 +45,876,2.825 +787,590,3.312 +19,456,1.665 +456,100,1.641 +66,125,3.347 +675,451,1.127 +109,514,3.625 +23,626,0.20800000000000002 +487,825,1.433 +825,863,0.436 +792,652,0.342 +535,812,1.871 +712,601,0.415 +876,535,4.595 +590,398,0.838 +398,879,0.496 +879,608,1.821 +784,299,2.242 +218,212,1.885 +212,5,0.857 +5,541,1.276 +541,820,1.943 +820,272,0.355 +272,327,1.999 +327,89,1.837 +89,85,1.984 +78,455,0.31 +455,225,3.783 +560,546,0.488 +546,348,1.486 +348,98,4.337 +664,111,2.252 +14,487,1.198 +815,713,1.5519999999999998 +634,559,1.569 +76,325,0.711 +819,76,0.578 +789,860,2.589 +44,648,0.736 +554,377,1.236 +652,712,0.973 +1,179,0.391 +228,509,1.767 +377,686,1.57 +288,706,0.48100000000000004 +425,604,0.384 +269,471,0.872 +480,757,0.757 +235,654,7.281000000000001 +354,851,0.851 +608,21,1.242 +279,735,2.005 +309,252,0.402 +63,135,1.091 +681,615,0.941 +127,778,0.503 +373,401,0.607 +493,81,0.863 +225,11,1.6569999999999998 +129,351,0.275 +355,766,0.705 +733,594,1.393 +131,267,0.7879999999999999 +611,533,0.789 +392,611,0.79 +267,190,0.741 +508,486,0.7859999999999999 +467,873,0.722 +676,174,0.9470000000000001 +852,550,0.705 +273,818,1.912 +16,139,1.389 +755,233,0.526 +143,336,1.6869999999999998 +833,842,3.388 +154,192,11.022 +846,794,0.34 +794,311,2.089 +343,707,1.4480000000000002 +544,689,2.093 +382,562,0.289 +882,788,0.336 +385,236,0.828 +74,605,0.882 +502,567,0.419 +678,641,0.27 +31,347,0.032 +347,107,3.5610000000000004 +741,678,1.37 +861,740,2.37 +613,829,0.619 +107,578,1.699 +829,741,1.849 +578,8,1.507 +201,613,1.3769999999999998 +395,208,1.21 +8,409,1.571 +522,201,1.476 +682,522,0.272 +409,609,0.304 +497,682,1.685 +609,169,1.429 +169,758,1.011 +50,759,2.373 +758,479,0.321 +479,53,4.415 +53,684,2.344 +644,50,5.004 +684,296,19.137999999999998 +696,644,2.406 +437,334,2.0340000000000003 +380,882,0.993 +551,257,1.944 +257,230,0.353 +397,699,0.598 +567,114,0.307 +7,343,0.353 +405,432,0.361 +759,497,0.255 +641,846,1.78 +108,226,0.49700000000000005 +132,646,1.406 +518,98,7.349 +432,31,2.279 +111,148,0.564 +103,158,2.004 +38,46,5.834 +281,864,2.6260000000000003 +281,357,1.112 +632,38,1.127 +298,661,1.224 +570,3,4.033 +264,396,20.539 +482,744,0.483 +359,525,0.8340000000000001 +4,547,1.16 +447,37,0.925 +415,534,1.182 +869,374,0.884 +690,645,0.805 +645,756,0.966 +756,238,0.48100000000000004 +238,580,0.972 +413,477,0.762 +580,669,0.805 +669,700,0.818 +798,810,0.72 +534,538,0.972 +538,824,1.1320000000000001 +719,865,1.568 +824,543,1.827 +404,719,1.13 +700,353,0.38799999999999996 +40,798,0.815 +163,705,1.04 +596,468,2.272 +28,677,2.093 +390,161,1.7619999999999998 +461,629,3.822 +629,390,5.981 +629,262,1.591 +115,183,1.607 +10,340,9.636000000000001 +340,696,19.063 +842,143,1.548 +790,386,0.581 +840,834,3.0589999999999997 +543,275,2.31 +691,551,1.3940000000000001 +707,544,0.49700000000000005 +121,469,2.077 +22,121,1.751 +547,240,0.255 +701,583,0.778 +788,573,0.785 +488,790,0.675 +312,765,0.7390000000000001 +517,867,0.469 +52,835,5.28 +337,540,1.227 +159,38,2.662 +159,337,0.336 +510,159,0.8029999999999999 +621,515,6.499 +658,439,1.033 +62,462,0.588 +241,813,0.963 +321,175,0.8079999999999999 +802,321,0.48 +813,814,2.34 +492,802,0.48 +141,358,1.7719999999999998 +834,162,1.7069999999999999 +139,1,4.561 +661,182,1.028 +318,73,1.202 +293,30,0.768 +54,465,0.96 +730,285,0.9620000000000001 +858,441,1.1640000000000001 +328,685,0.223 +324,453,0.693 +470,520,0.6609999999999999 +856,548,0.48100000000000004 +180,859,0.789 +276,180,0.48200000000000004 +548,380,0.498 +308,2,0.946 +427,502,1.19 +662,116,1.139 +0,475,0.9620000000000001 +866,293,0.9620000000000001 +364,87,0.718 +553,443,1.6480000000000001 +665,553,0.96 +342,806,0.935 +248,753,0.6709999999999999 +742,248,0.319 +457,110,3.772 +457,464,2.7430000000000003 +839,189,1.287 +803,457,0.644 +428,803,2.086 +189,539,2.09 +275,839,0.802 +622,258,2.025 +399,622,0.321 +539,444,1.77 +806,399,0.997 +753,665,0.927 +832,342,0.66 +469,828,1.288 +828,715,1.449 +715,281,4.011 +715,624,1.7690000000000001 +624,881,0.48100000000000004 +46,478,2.41 +478,410,2.411 +410,692,0.48 +692,243,4.9719999999999995 +243,428,2.062 +444,211,0.31 +211,433,4.614 +760,459,0.948 +433,631,0.325 +631,809,2.591 +254,422,2.166 +307,254,0.637 +616,307,1.94 +423,402,0.654 +728,281,5.496 +728,423,2.9 +809,728,2.521 +422,219,1.524 +219,815,3.7539999999999996 +881,46,2.414 +402,616,1.3090000000000002 +464,742,1.121 +258,275,0.7070000000000001 +142,426,4.148 +740,666,0.51 +418,741,2.841 +769,43,0.341 +43,119,0.61 +119,234,0.7020000000000001 +718,775,0.894 +234,584,0.34 +584,745,0.425 +313,379,0.409 +379,693,1.585 +745,313,1.125 +360,33,0.715 +693,593,0.354 +593,485,0.835 +48,507,1.354 +485,642,0.852 +642,504,1.053 +816,48,0.861 +504,47,1.088 +47,86,0.9590000000000001 +145,557,1.4280000000000002 +86,855,1.874 +292,145,0.648 +557,816,0.72 +507,711,0.534 +711,260,1.222 +260,329,0.308 +329,360,0.93 +33,221,0.32 +221,718,0.445 +775,268,0.34299999999999997 +268,817,1.15 +817,418,0.518 +666,769,1.413 +416,484,0.513 +484,617,0.9590000000000001 +647,154,9.751 +330,39,14.042 +515,330,0.889 +17,141,1.6059999999999999 +338,737,0.799 +774,595,1.4880000000000002 +776,338,1.4880000000000002 +595,625,1.604 +442,776,1.608 +625,524,0.986 +13,39,1.212 +13,74,0.546 +370,42,0.883 +537,13,0.8420000000000001 +496,521,2.095 +521,400,0.6409999999999999 +463,671,0.22399999999999998 +230,725,1.733 +811,142,1.311 +530,463,0.319 +36,278,1.133 +202,218,2.9589999999999996 +531,694,2.01 +77,416,0.61 +689,382,0.079 +588,612,1.492 +857,167,0.41600000000000004 +400,831,0.868 +419,370,1.205 +771,630,1.126 +265,365,1.012 +161,271,1.594 +617,461,1.751 +334,714,2.162 +208,256,1.023 +417,476,0.11199999999999999 +256,639,1.036 +256,199,4.669 +878,687,0.77 +583,503,2.217 +503,633,0.804 +92,878,2.213 +434,305,1.413 +69,316,0.639 +722,434,0.6409999999999999 +316,381,0.878 +320,589,0.894 +291,545,0.225 +633,291,0.48200000000000004 +217,92,0.8029999999999999 +140,837,0.6709999999999999 +362,294,0.733 +150,558,0.483 +868,213,0.608 +677,523,0.531 +246,64,0.375 +227,653,2.674 +366,403,0.289 +284,384,1.804 +384,698,2.903 +529,366,1.7990000000000002 +698,482,2.414 +352,529,2.903 +744,575,0.161 +575,376,4.843 +148,214,1.16 +860,716,1.228 +799,79,0.809 +59,667,0.889 +746,59,0.807 +198,378,1.465 +98,57,0.815 +420,96,2.06 +240,683,7.196 +782,16,1.722 +843,253,3.8089999999999997 +353,415,1.9609999999999999 +663,789,17.238 +591,600,8.862 +374,40,1.471 +477,498,1.5959999999999999 +710,843,0.785 +396,352,6.295999999999999 diff --git a/data/PEMS07/PEMS07.npz b/data/PEMS07/PEMS07.npz new file mode 100644 index 0000000..28c547f Binary files /dev/null and b/data/PEMS07/PEMS07.npz differ diff --git a/data/PEMS07/PEMS07_dtw_distance.npy b/data/PEMS07/PEMS07_dtw_distance.npy new file mode 100644 index 0000000..70b9d89 Binary files /dev/null and b/data/PEMS07/PEMS07_dtw_distance.npy differ diff --git a/data/PEMS07/PEMS07_spatial_distance.npy b/data/PEMS07/PEMS07_spatial_distance.npy new file mode 100644 index 0000000..52a19d9 Binary files /dev/null and b/data/PEMS07/PEMS07_spatial_distance.npy differ diff --git a/data/PEMS08/PEMS08.csv b/data/PEMS08/PEMS08.csv old mode 100755 new mode 100644 index d671be6..cf11bea --- a/data/PEMS08/PEMS08.csv +++ b/data/PEMS08/PEMS08.csv @@ -1,296 +1,296 @@ -from,to,cost -9,153,310.6 -153,62,330.9 -62,111,332.9 -111,11,324.2 -11,28,336.0 -28,169,133.7 -138,135,354.7 -135,133,387.9 -133,163,337.1 -163,20,352.0 -20,19,420.8 -19,14,351.3 -14,39,340.2 -39,164,350.3 -164,167,365.2 -167,70,359.0 -70,59,388.2 -59,58,305.7 -58,67,294.4 -67,66,299.5 -66,55,313.3 -55,53,332.1 -53,150,278.9 -150,61,308.4 -61,64,311.4 -64,63,243.6 -47,65,372.8 -65,48,319.4 -48,49,309.7 -49,54,320.5 -54,56,318.3 -56,57,297.9 -57,68,293.5 -68,69,342.5 -69,60,318.0 -60,17,305.9 -17,5,321.4 -5,18,402.2 -18,22,447.4 -22,30,377.5 -30,29,417.7 -29,21,360.8 -21,132,407.6 -132,134,386.9 -134,136,350.2 -123,121,326.3 -121,140,385.2 -140,118,393.0 -118,96,296.7 -96,94,398.2 -94,86,337.1 -86,78,473.8 -78,46,353.4 -46,152,385.7 -152,157,350.0 -157,35,354.4 -35,77,356.1 -77,52,354.2 -52,3,357.8 -3,16,382.4 -16,0,55.7 -42,12,335.1 -12,139,328.8 -139,168,412.6 -168,154,337.3 -154,143,370.7 -143,10,6.3 -107,105,354.6 -105,104,386.9 -104,148,362.1 -148,97,316.3 -97,101,380.7 -101,137,361.4 -137,102,365.5 -102,24,375.5 -24,166,312.2 -129,156,256.1 -156,33,329.1 -33,32,356.5 -91,89,405.6 -89,147,347.0 -147,15,351.7 -15,44,339.5 -44,41,350.8 -41,43,322.6 -43,100,338.9 -100,83,347.9 -83,87,327.2 -87,88,321.0 -88,75,335.8 -75,51,384.8 -51,73,391.1 -73,71,289.3 -31,155,260.0 -155,34,320.4 -34,128,393.3 -145,115,399.4 -115,112,328.1 -112,8,469.4 -8,117,816.2 -117,125,397.1 -125,127,372.7 -127,109,380.5 -109,161,355.5 -161,110,367.7 -110,160,102.0 -72,159,342.9 -159,50,383.3 -50,74,354.1 -74,82,350.2 -82,81,335.4 -81,99,391.6 -99,84,354.9 -84,13,306.4 -13,40,327.4 -40,162,413.9 -162,108,301.9 -108,146,317.8 -146,85,376.6 -85,90,347.0 -26,27,341.6 -27,6,359.4 -6,149,417.8 -149,126,388.0 -126,124,384.3 -124,7,763.3 -7,114,323.1 -114,113,351.6 -113,116,411.9 -116,144,262.0 -25,103,350.2 -103,23,376.3 -23,165,396.4 -165,38,381.0 -38,92,368.0 -92,37,336.3 -37,130,357.8 -130,106,532.3 -106,131,166.5 -1,2,371.6 -2,4,338.1 -4,76,429.0 -76,36,366.1 -36,158,344.5 -158,151,350.1 -151,45,358.8 -45,93,340.9 -93,80,329.9 -80,79,384.1 -79,95,335.7 -95,98,320.9 -98,119,340.3 -119,120,376.8 -120,122,393.1 -122,141,428.7 -141,142,359.3 -30,165,379.6 -165,29,41.7 -29,38,343.3 -65,72,297.9 -72,48,21.5 -17,153,375.6 -153,5,256.3 -153,62,330.9 -18,6,499.4 -6,22,254.0 -22,149,185.4 -22,4,257.9 -4,30,236.8 -30,76,307.0 -95,98,320.9 -98,144,45.1 -45,93,340.9 -93,106,112.2 -162,151,113.6 -151,108,192.9 -108,45,359.8 -146,92,311.2 -92,85,343.9 -85,37,373.2 -13,169,326.2 -169,40,96.1 -124,13,460.7 -13,7,305.5 -7,40,624.1 -124,169,145.2 -169,7,631.5 -90,132,152.2 -26,32,106.7 -9,129,148.3 -129,153,219.6 -31,26,116.0 -26,155,270.7 -9,128,142.2 -128,153,215.0 -153,167,269.7 -167,62,64.8 -62,70,332.6 -124,169,145.2 -169,7,631.5 -44,169,397.8 -169,41,124.0 -44,124,375.7 -124,41,243.9 -41,7,519.4 -6,14,289.3 -14,149,259.0 -149,39,206.9 -144,98,45.1 -19,4,326.8 -4,14,178.6 -14,76,299.0 -15,151,136.4 -151,44,203.1 -45,106,260.6 -106,93,112.2 -20,165,132.5 -165,19,289.2 -89,92,323.2 -92,147,321.9 -147,37,48.2 -133,91,152.8 -91,163,313.6 -150,71,221.1 -71,61,89.6 -78,107,143.9 -107,46,236.3 -104,147,277.5 -147,148,84.7 -20,101,201.2 -101,19,534.4 -19,137,245.5 -8,42,759.5 -42,117,58.9 -44,42,342.3 -42,41,102.5 -44,8,789.1 -8,41,657.4 -41,117,160.5 -168,167,172.4 -167,154,165.2 -143,128,81.9 -128,10,88.2 -118,145,250.6 -145,96,85.1 -15,152,135.0 -152,44,204.6 -19,77,320.7 -77,14,299.8 -14,52,127.6 -14,127,314.8 -127,39,280.4 -39,109,237.0 -31,160,116.5 -160,155,272.4 -133,91,152.8 -91,163,313.6 -150,71,221.1 -71,61,89.6 -32,160,107.7 -72,162,3274.4 -162,13,554.5 -162,40,413.9 -65,72,297.9 -72,48,21.5 -13,42,319.8 -42,40,40.7 -8,42,759.5 -42,117,58.9 -8,13,450.3 -13,117,378.5 -117,40,64.0 -46,162,391.6 -162,152,115.3 -152,108,191.4 -104,108,375.9 -108,148,311.6 -148,146,80.0 -21,90,396.9 -90,132,152.2 -101,29,252.3 -29,137,110.7 -77,22,353.8 -22,52,227.8 -52,30,186.6 -127,18,425.2 -18,109,439.1 -109,22,135.5 -168,17,232.7 -17,154,294.2 -154,5,166.3 -78,107,143.9 -107,46,236.3 -118,145,250.6 -145,96,85.1 +from,to,cost +9,153,310.6 +153,62,330.9 +62,111,332.9 +111,11,324.2 +11,28,336.0 +28,169,133.7 +138,135,354.7 +135,133,387.9 +133,163,337.1 +163,20,352.0 +20,19,420.8 +19,14,351.3 +14,39,340.2 +39,164,350.3 +164,167,365.2 +167,70,359.0 +70,59,388.2 +59,58,305.7 +58,67,294.4 +67,66,299.5 +66,55,313.3 +55,53,332.1 +53,150,278.9 +150,61,308.4 +61,64,311.4 +64,63,243.6 +47,65,372.8 +65,48,319.4 +48,49,309.7 +49,54,320.5 +54,56,318.3 +56,57,297.9 +57,68,293.5 +68,69,342.5 +69,60,318.0 +60,17,305.9 +17,5,321.4 +5,18,402.2 +18,22,447.4 +22,30,377.5 +30,29,417.7 +29,21,360.8 +21,132,407.6 +132,134,386.9 +134,136,350.2 +123,121,326.3 +121,140,385.2 +140,118,393.0 +118,96,296.7 +96,94,398.2 +94,86,337.1 +86,78,473.8 +78,46,353.4 +46,152,385.7 +152,157,350.0 +157,35,354.4 +35,77,356.1 +77,52,354.2 +52,3,357.8 +3,16,382.4 +16,0,55.7 +42,12,335.1 +12,139,328.8 +139,168,412.6 +168,154,337.3 +154,143,370.7 +143,10,6.3 +107,105,354.6 +105,104,386.9 +104,148,362.1 +148,97,316.3 +97,101,380.7 +101,137,361.4 +137,102,365.5 +102,24,375.5 +24,166,312.2 +129,156,256.1 +156,33,329.1 +33,32,356.5 +91,89,405.6 +89,147,347.0 +147,15,351.7 +15,44,339.5 +44,41,350.8 +41,43,322.6 +43,100,338.9 +100,83,347.9 +83,87,327.2 +87,88,321.0 +88,75,335.8 +75,51,384.8 +51,73,391.1 +73,71,289.3 +31,155,260.0 +155,34,320.4 +34,128,393.3 +145,115,399.4 +115,112,328.1 +112,8,469.4 +8,117,816.2 +117,125,397.1 +125,127,372.7 +127,109,380.5 +109,161,355.5 +161,110,367.7 +110,160,102.0 +72,159,342.9 +159,50,383.3 +50,74,354.1 +74,82,350.2 +82,81,335.4 +81,99,391.6 +99,84,354.9 +84,13,306.4 +13,40,327.4 +40,162,413.9 +162,108,301.9 +108,146,317.8 +146,85,376.6 +85,90,347.0 +26,27,341.6 +27,6,359.4 +6,149,417.8 +149,126,388.0 +126,124,384.3 +124,7,763.3 +7,114,323.1 +114,113,351.6 +113,116,411.9 +116,144,262.0 +25,103,350.2 +103,23,376.3 +23,165,396.4 +165,38,381.0 +38,92,368.0 +92,37,336.3 +37,130,357.8 +130,106,532.3 +106,131,166.5 +1,2,371.6 +2,4,338.1 +4,76,429.0 +76,36,366.1 +36,158,344.5 +158,151,350.1 +151,45,358.8 +45,93,340.9 +93,80,329.9 +80,79,384.1 +79,95,335.7 +95,98,320.9 +98,119,340.3 +119,120,376.8 +120,122,393.1 +122,141,428.7 +141,142,359.3 +30,165,379.6 +165,29,41.7 +29,38,343.3 +65,72,297.9 +72,48,21.5 +17,153,375.6 +153,5,256.3 +153,62,330.9 +18,6,499.4 +6,22,254.0 +22,149,185.4 +22,4,257.9 +4,30,236.8 +30,76,307.0 +95,98,320.9 +98,144,45.1 +45,93,340.9 +93,106,112.2 +162,151,113.6 +151,108,192.9 +108,45,359.8 +146,92,311.2 +92,85,343.9 +85,37,373.2 +13,169,326.2 +169,40,96.1 +124,13,460.7 +13,7,305.5 +7,40,624.1 +124,169,145.2 +169,7,631.5 +90,132,152.2 +26,32,106.7 +9,129,148.3 +129,153,219.6 +31,26,116.0 +26,155,270.7 +9,128,142.2 +128,153,215.0 +153,167,269.7 +167,62,64.8 +62,70,332.6 +124,169,145.2 +169,7,631.5 +44,169,397.8 +169,41,124.0 +44,124,375.7 +124,41,243.9 +41,7,519.4 +6,14,289.3 +14,149,259.0 +149,39,206.9 +144,98,45.1 +19,4,326.8 +4,14,178.6 +14,76,299.0 +15,151,136.4 +151,44,203.1 +45,106,260.6 +106,93,112.2 +20,165,132.5 +165,19,289.2 +89,92,323.2 +92,147,321.9 +147,37,48.2 +133,91,152.8 +91,163,313.6 +150,71,221.1 +71,61,89.6 +78,107,143.9 +107,46,236.3 +104,147,277.5 +147,148,84.7 +20,101,201.2 +101,19,534.4 +19,137,245.5 +8,42,759.5 +42,117,58.9 +44,42,342.3 +42,41,102.5 +44,8,789.1 +8,41,657.4 +41,117,160.5 +168,167,172.4 +167,154,165.2 +143,128,81.9 +128,10,88.2 +118,145,250.6 +145,96,85.1 +15,152,135.0 +152,44,204.6 +19,77,320.7 +77,14,299.8 +14,52,127.6 +14,127,314.8 +127,39,280.4 +39,109,237.0 +31,160,116.5 +160,155,272.4 +133,91,152.8 +91,163,313.6 +150,71,221.1 +71,61,89.6 +32,160,107.7 +72,162,3274.4 +162,13,554.5 +162,40,413.9 +65,72,297.9 +72,48,21.5 +13,42,319.8 +42,40,40.7 +8,42,759.5 +42,117,58.9 +8,13,450.3 +13,117,378.5 +117,40,64.0 +46,162,391.6 +162,152,115.3 +152,108,191.4 +104,108,375.9 +108,148,311.6 +148,146,80.0 +21,90,396.9 +90,132,152.2 +101,29,252.3 +29,137,110.7 +77,22,353.8 +22,52,227.8 +52,30,186.6 +127,18,425.2 +18,109,439.1 +109,22,135.5 +168,17,232.7 +17,154,294.2 +154,5,166.3 +78,107,143.9 +107,46,236.3 +118,145,250.6 +145,96,85.1 diff --git a/data/PEMS08/PEMS08.npz b/data/PEMS08/PEMS08.npz old mode 100755 new mode 100644 diff --git a/data/get_adj.py b/data/get_adj.py new file mode 100644 index 0000000..87f6de3 --- /dev/null +++ b/data/get_adj.py @@ -0,0 +1,220 @@ +import csv +import os +import numpy as np +import pandas as pd +from scipy.sparse import coo_matrix +from scipy.sparse.linalg import norm +import scipy.sparse as sp +import torch + +def get_adj(args): + dataset_path = './data' + match args['num_nodes']: + case 358: + dataset_name = 'PEMS03' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS03.csv') + id = os.path.join(dataset_path, dataset_name, 'PEMS03.txt') + A, adj = load_adj(args['num_nodes'], adj_path, id_filename=id) + case 307: + dataset_name = 'PEMS04' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS04.csv') + A, adj = load_adj(args['num_nodes'], adj_path, std=True) + case 883: + dataset_name = 'PEMS07' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS07.csv') + A, adj = load_adj(args['num_nodes'], adj_path) + case 170: + dataset_name = 'PEMS08' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS08.csv') + A, adj = load_adj(args['num_nodes'], adj_path, std=True) + + return adj + +def get_gso(args): + dataset_path = './data' + match args['num_nodes']: + case 358: + dataset_name = 'PEMS03' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS03.csv') + id = os.path.join(dataset_path, dataset_name, 'PEMS03.txt') + A, adj = load_adj(args['num_nodes'], adj_path, id_filename=id) + case 307: + dataset_name = 'PEMS04' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS04.csv') + A, adj = load_adj(args['num_nodes'], adj_path, std=True) + case 883: + dataset_name = 'PEMS07' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS07.csv') + A, adj = load_adj(args['num_nodes'], adj_path) + case 170: + dataset_name = 'PEMS08' + adj_path = os.path.join(dataset_path, dataset_name, 'PEMS08.csv') + A, adj = load_adj(args['num_nodes'], adj_path, std=True) + + gso = calc_gso(adj, args['gso_type']) + if args['graph_conv_type'] == 'cheb_graph_conv': + gso = calc_chebynet_gso(gso) + gso = gso.toarray() + gso = gso.astype(dtype=np.float32) + gso = torch.from_numpy(gso).to(args['device']) + return gso + +def load_adj(num_nodes, adj_path, id_filename=None, std=False): + ''' + Parameters + ---------- + adj_path: str, path of the csv file contains edges information + num_nodes: int, the number of vertices + id_filename: str, optional, path of the file containing node IDs (if not starting from 0) + std: bool, if True, normalize the cost values in the CSV file using Gaussian normalization + + Returns + ---------- + A: np.ndarray, adjacency matrix + distanceA: np.ndarray, distance matrix (normalized if std=True) + ''' + if 'npy' in adj_path: + adj_mx = np.load(adj_path) + return adj_mx, None + + else: + A = np.zeros((int(num_nodes), int(num_nodes)), dtype=np.float32) + distanceA = np.zeros((int(num_nodes), int(num_nodes)), dtype=np.float32) + + # 如果提供了id_filename,说明节点ID不是从0开始的,需要重新映射 + if id_filename: + with open(id_filename, 'r') as f: + id_dict = {int(i): idx for idx, i in enumerate(f.read().strip().split('\n'))} + + with open(adj_path, 'r') as f: + f.readline() # 略过表头那一行 + reader = csv.reader(f) + costs = [] # 用于收集所有cost值 + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + A[id_dict[i], id_dict[j]] = 1 + # 确保距离值为正 + distance = max(distance, 1e-6) + costs.append(distance) # 收集cost值 + distanceA[id_dict[i], id_dict[j]] = distance + + else: # 如果没有提供id_filename,说明节点ID是从0开始的 + with open(adj_path, 'r') as f: + f.readline() # 略过表头那一行 + reader = csv.reader(f) + costs = [] # 用于收集所有cost值 + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + A[i, j] = 1 + # 确保距离值为正 + distance = max(distance, 1e-6) + costs.append(distance) # 收集cost值 + distanceA[i, j] = distance + + # 如果std=True,对CSV中的所有cost值进行高斯正态分布标准化 + if std: + mean_cost = np.mean(costs) # 计算cost值的均值 + std_cost = np.std(costs) # 计算cost值的标准差 + for idx in np.ndindex(distanceA.shape): # 遍历矩阵 + if distanceA[idx] > 0: # 只对非零元素进行标准化 + normalized_value = (distanceA[idx] - mean_cost) / std_cost + # 确保标准化后的值为正 + normalized_value = max(normalized_value, 1e-6) + distanceA[idx] = normalized_value + + # 确保矩阵中没有零行 + row_sums = distanceA.sum(axis=1) + zero_rows = np.where(row_sums == 0)[0] + for row in zero_rows: + distanceA[row, :] = 1e-6 # 将零行替换为一个非零的默认值 + + return A, distanceA + + +def calc_gso(dir_adj, gso_type): + n_vertex = dir_adj.shape[0] + + if not sp.issparse(dir_adj): + dir_adj = sp.csc_matrix(dir_adj) + elif dir_adj.format != 'csc': + dir_adj = dir_adj.tocsc() + + id = sp.identity(n_vertex, format='csc') + + # Symmetrizing an adjacency matrix + adj = dir_adj + dir_adj.T.multiply(dir_adj.T > dir_adj) - dir_adj.multiply(dir_adj.T > dir_adj) + # adj = 0.5 * (dir_adj + dir_adj.transpose()) + + if gso_type in ['sym_renorm_adj', 'rw_renorm_adj', 'sym_renorm_lap', 'rw_renorm_lap']: + adj = adj + id + + if gso_type in ['sym_norm_adj', 'sym_renorm_adj', 'sym_norm_lap', 'sym_renorm_lap']: + row_sum = adj.sum(axis=1).A1 + # Check for zero or negative values in row_sum + if np.any(row_sum <= 0): + raise ValueError( + "Row sum contains zero or negative values, which is not allowed for symmetric normalization.") + + row_sum_inv_sqrt = np.power(row_sum, -0.5) + row_sum_inv_sqrt[np.isinf(row_sum_inv_sqrt)] = 0. # Handle inf values + deg_inv_sqrt = sp.diags(row_sum_inv_sqrt, format='csc') + # A_{sym} = D^{-0.5} * A * D^{-0.5} + sym_norm_adj = deg_inv_sqrt.dot(adj).dot(deg_inv_sqrt) + + if gso_type in ['sym_norm_lap', 'sym_renorm_lap']: + sym_norm_lap = id - sym_norm_adj + gso = sym_norm_lap + else: + gso = sym_norm_adj + + elif gso_type in ['rw_norm_adj', 'rw_renorm_adj', 'rw_norm_lap', 'rw_renorm_lap']: + row_sum = np.sum(adj, axis=1).A1 + # Check for zero or negative values in row_sum + if np.any(row_sum <= 0): + raise ValueError( + "Row sum contains zero or negative values, which is not allowed for random walk normalization.") + + row_sum_inv = np.power(row_sum, -1) + row_sum_inv[np.isinf(row_sum_inv)] = 0. # Handle inf values + deg_inv = sp.diags(row_sum_inv, format='csc') + # A_{rw} = D^{-1} * A + rw_norm_adj = deg_inv.dot(adj) + + if gso_type in ['rw_norm_lap', 'rw_renorm_lap']: + rw_norm_lap = id - rw_norm_adj + gso = rw_norm_lap + else: + gso = rw_norm_adj + + else: + raise ValueError(f'{gso_type} is not defined.') + + # Check for nan or inf in the final result + if np.isnan(gso.data).any() or np.isinf(gso.data).any(): + raise ValueError("NaN or Inf detected in the final GSO matrix. Please check the input adjacency matrix.") + + return gso + + +def calc_chebynet_gso(gso): + if sp.issparse(gso) == False: + gso = sp.csc_matrix(gso) + elif gso.format != 'csc': + gso = gso.tocsc() + + id = sp.identity(gso.shape[0], format='csc') + # If you encounter a NotImplementedError, please update your scipy version to 1.10.1 or later. + eigval_max = norm(gso, 2) + + # If the gso is symmetric or random walk normalized Laplacian, + # then the maximum eigenvalue is smaller than or equals to 2. + if eigval_max >= 2: + gso = gso - id + else: + gso = 2 * gso / eigval_max - id + + return gso diff --git a/requirements.txt b/requirements.txt index 0c0c649..b9edec9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -33,7 +33,6 @@ matplotlib requests # 文件压缩处理 -zipfile # Kaggle数据下载 kagglehub diff --git a/utils/download.py b/utils/download.py index ed7c929..9b7ec19 100644 --- a/utils/download.py +++ b/utils/download.py @@ -74,7 +74,7 @@ def download_adj_data(current_dir, max_retries=3): 下载并解压 adj.zip 文件,并显示下载进度条。 如果下载失败,最多重试 max_retries 次。 """ - url = "https://code.zhang-heng.com/static/adj.zip" + url = "http://code.zhang-heng.com/static/adj.zip" retries = 0 while retries <= max_retries: @@ -143,4 +143,4 @@ def download_kaggle_data(current_dir): # 主程序 if __name__ == "__main__": - check_and_download_data() \ No newline at end of file + check_and_download_data()