From f00a3957f4818405fabefaca11ef52a4d0d6a965 Mon Sep 17 00:00:00 2001 From: Amanda L Martin Date: Wed, 30 Mar 2022 17:22:35 -0400 Subject: [PATCH] remove non-data files (#90) * remove non-data files * readme --- CryptoCurrency/Dockerfile | 3 - CryptoCurrency/README.md | 71 ---- CryptoCurrency/app.d/crypto.py | 74 ---- CryptoCurrency/app.d/cryptoApp.app | 6 - CryptoCurrency/crypto.png | 3 - CryptoCurrency/crypto1.png | 3 - CryptoCurrency/docker-compose.yml | 42 -- CryptoCurrency/script.py | 68 ---- CryptoCurrency/start.sh | 2 - Fit/README.md | 70 ---- Fit/StravaExport.png | 3 - Fit/ThursMorn.fit | Bin 112506 -> 0 bytes Fit/accessFit.py | 87 ----- Fit/heartRateChart.png | 3 - Fit/heartRateTable.png | 3 - NoodlePug/README.md | 88 ----- Prometheus/Dockerfile | 3 - Prometheus/README.md | 70 ---- Prometheus/app.d/app.app | 6 - Prometheus/app.d/prometheus.py | 160 -------- Prometheus/app.d/requirements.txt | 5 - Prometheus/docker-compose.yml | 47 --- Prometheus/start.sh | 2 - README.md | 6 - RedpandaStats/README.md | 66 ---- RedpandaStats/docker-compose.yml | 85 ---- RedpandaStats/kafka-produce.py | 75 ---- TensorFlow/README.md | 36 -- TensorFlow/tensorflow.py | 362 ------------------ TensorFlow/trainData.csv | 3 - TickingHeartRate/README.md | 59 --- TickingHeartRate/csv/1.csv | 3 - TickingHeartRate/csv/10.csv | 3 - TickingHeartRate/csv/100.csv | 3 - TickingHeartRate/csv/101.csv | 3 - TickingHeartRate/csv/102.csv | 3 - TickingHeartRate/csv/103.csv | 3 - TickingHeartRate/csv/104.csv | 3 - TickingHeartRate/csv/105.csv | 3 - TickingHeartRate/csv/106.csv | 3 - TickingHeartRate/csv/107.csv | 3 - TickingHeartRate/csv/108.csv | 3 - TickingHeartRate/csv/109.csv | 3 - TickingHeartRate/csv/11.csv | 3 - TickingHeartRate/csv/110.csv | 3 - TickingHeartRate/csv/111.csv | 3 - TickingHeartRate/csv/112.csv | 3 - TickingHeartRate/csv/113.csv | 3 - TickingHeartRate/csv/114.csv | 3 - TickingHeartRate/csv/115.csv | 3 - TickingHeartRate/csv/116.csv | 3 - TickingHeartRate/csv/117.csv | 3 - TickingHeartRate/csv/118.csv | 3 - TickingHeartRate/csv/119.csv | 3 - TickingHeartRate/csv/12.csv | 3 - TickingHeartRate/csv/120.csv | 3 - TickingHeartRate/csv/121.csv | 3 - TickingHeartRate/csv/122.csv | 3 - TickingHeartRate/csv/123.csv | 3 - TickingHeartRate/csv/124.csv | 3 - TickingHeartRate/csv/125.csv | 3 - TickingHeartRate/csv/126.csv | 3 - TickingHeartRate/csv/127.csv | 3 - TickingHeartRate/csv/128.csv | 3 - TickingHeartRate/csv/129.csv | 3 - TickingHeartRate/csv/13.csv | 3 - TickingHeartRate/csv/130.csv | 3 - TickingHeartRate/csv/131.csv | 3 - TickingHeartRate/csv/132.csv | 3 - TickingHeartRate/csv/133.csv | 3 - TickingHeartRate/csv/134.csv | 3 - TickingHeartRate/csv/135.csv | 3 - TickingHeartRate/csv/136.csv | 3 - TickingHeartRate/csv/137.csv | 3 - TickingHeartRate/csv/138.csv | 3 - TickingHeartRate/csv/139.csv | 3 - TickingHeartRate/csv/14.csv | 3 - TickingHeartRate/csv/140.csv | 3 - TickingHeartRate/csv/141.csv | 3 - TickingHeartRate/csv/142.csv | 3 - TickingHeartRate/csv/143.csv | 3 - TickingHeartRate/csv/144.csv | 3 - TickingHeartRate/csv/145.csv | 3 - TickingHeartRate/csv/146.csv | 3 - TickingHeartRate/csv/147.csv | 3 - TickingHeartRate/csv/148.csv | 3 - TickingHeartRate/csv/149.csv | 3 - TickingHeartRate/csv/15.csv | 3 - TickingHeartRate/csv/150.csv | 3 - TickingHeartRate/csv/151.csv | 3 - TickingHeartRate/csv/152.csv | 3 - TickingHeartRate/csv/153.csv | 3 - TickingHeartRate/csv/154.csv | 3 - TickingHeartRate/csv/155.csv | 3 - TickingHeartRate/csv/156.csv | 3 - TickingHeartRate/csv/157.csv | 3 - TickingHeartRate/csv/158.csv | 3 - TickingHeartRate/csv/159.csv | 3 - TickingHeartRate/csv/16.csv | 3 - TickingHeartRate/csv/160.csv | 3 - TickingHeartRate/csv/161.csv | 3 - TickingHeartRate/csv/162.csv | 3 - TickingHeartRate/csv/163.csv | 3 - TickingHeartRate/csv/164.csv | 3 - TickingHeartRate/csv/165.csv | 3 - TickingHeartRate/csv/166.csv | 3 - TickingHeartRate/csv/167.csv | 3 - TickingHeartRate/csv/168.csv | 3 - TickingHeartRate/csv/169.csv | 3 - TickingHeartRate/csv/17.csv | 3 - TickingHeartRate/csv/170.csv | 3 - TickingHeartRate/csv/171.csv | 3 - TickingHeartRate/csv/172.csv | 3 - TickingHeartRate/csv/173.csv | 3 - TickingHeartRate/csv/174.csv | 3 - TickingHeartRate/csv/175.csv | 3 - TickingHeartRate/csv/176.csv | 3 - TickingHeartRate/csv/177.csv | 3 - TickingHeartRate/csv/178.csv | 3 - TickingHeartRate/csv/179.csv | 3 - TickingHeartRate/csv/18.csv | 3 - TickingHeartRate/csv/180.csv | 3 - TickingHeartRate/csv/181.csv | 3 - TickingHeartRate/csv/182.csv | 3 - TickingHeartRate/csv/183.csv | 3 - TickingHeartRate/csv/184.csv | 3 - TickingHeartRate/csv/185.csv | 3 - TickingHeartRate/csv/186.csv | 3 - TickingHeartRate/csv/187.csv | 3 - TickingHeartRate/csv/188.csv | 3 - TickingHeartRate/csv/189.csv | 3 - TickingHeartRate/csv/19.csv | 3 - TickingHeartRate/csv/190.csv | 3 - TickingHeartRate/csv/191.csv | 3 - TickingHeartRate/csv/192.csv | 3 - TickingHeartRate/csv/193.csv | 3 - TickingHeartRate/csv/194.csv | 3 - TickingHeartRate/csv/195.csv | 3 - TickingHeartRate/csv/196.csv | 3 - TickingHeartRate/csv/197.csv | 3 - TickingHeartRate/csv/198.csv | 3 - TickingHeartRate/csv/199.csv | 3 - TickingHeartRate/csv/2.csv | 3 - TickingHeartRate/csv/20.csv | 3 - TickingHeartRate/csv/200.csv | 3 - TickingHeartRate/csv/201.csv | 3 - TickingHeartRate/csv/202.csv | 3 - TickingHeartRate/csv/203.csv | 3 - TickingHeartRate/csv/204.csv | 3 - TickingHeartRate/csv/205.csv | 3 - TickingHeartRate/csv/206.csv | 3 - TickingHeartRate/csv/207.csv | 3 - TickingHeartRate/csv/208.csv | 3 - TickingHeartRate/csv/209.csv | 3 - TickingHeartRate/csv/21.csv | 3 - TickingHeartRate/csv/210.csv | 3 - TickingHeartRate/csv/211.csv | 3 - TickingHeartRate/csv/212.csv | 3 - TickingHeartRate/csv/213.csv | 3 - TickingHeartRate/csv/214.csv | 3 - TickingHeartRate/csv/215.csv | 3 - TickingHeartRate/csv/216.csv | 3 - TickingHeartRate/csv/217.csv | 3 - TickingHeartRate/csv/218.csv | 3 - TickingHeartRate/csv/219.csv | 3 - TickingHeartRate/csv/22.csv | 3 - TickingHeartRate/csv/220.csv | 3 - TickingHeartRate/csv/221.csv | 3 - TickingHeartRate/csv/222.csv | 3 - TickingHeartRate/csv/223.csv | 3 - TickingHeartRate/csv/224.csv | 3 - TickingHeartRate/csv/225.csv | 3 - TickingHeartRate/csv/226.csv | 3 - TickingHeartRate/csv/227.csv | 3 - TickingHeartRate/csv/228.csv | 3 - TickingHeartRate/csv/229.csv | 3 - TickingHeartRate/csv/23.csv | 3 - TickingHeartRate/csv/230.csv | 3 - TickingHeartRate/csv/231.csv | 3 - TickingHeartRate/csv/232.csv | 3 - TickingHeartRate/csv/233.csv | 3 - TickingHeartRate/csv/234.csv | 3 - TickingHeartRate/csv/235.csv | 3 - TickingHeartRate/csv/236.csv | 3 - TickingHeartRate/csv/237.csv | 3 - TickingHeartRate/csv/238.csv | 3 - TickingHeartRate/csv/239.csv | 3 - TickingHeartRate/csv/24.csv | 3 - TickingHeartRate/csv/240.csv | 3 - TickingHeartRate/csv/241.csv | 3 - TickingHeartRate/csv/242.csv | 3 - TickingHeartRate/csv/243.csv | 3 - TickingHeartRate/csv/244.csv | 3 - TickingHeartRate/csv/245.csv | 3 - TickingHeartRate/csv/246.csv | 3 - TickingHeartRate/csv/247.csv | 3 - TickingHeartRate/csv/248.csv | 3 - TickingHeartRate/csv/249.csv | 3 - TickingHeartRate/csv/25.csv | 3 - TickingHeartRate/csv/250.csv | 3 - TickingHeartRate/csv/26.csv | 3 - TickingHeartRate/csv/27.csv | 3 - TickingHeartRate/csv/28.csv | 3 - TickingHeartRate/csv/29.csv | 3 - TickingHeartRate/csv/3.csv | 3 - TickingHeartRate/csv/30.csv | 3 - TickingHeartRate/csv/31.csv | 3 - TickingHeartRate/csv/32.csv | 3 - TickingHeartRate/csv/33.csv | 3 - TickingHeartRate/csv/34.csv | 3 - TickingHeartRate/csv/35.csv | 3 - TickingHeartRate/csv/36.csv | 3 - TickingHeartRate/csv/37.csv | 3 - TickingHeartRate/csv/38.csv | 3 - TickingHeartRate/csv/39.csv | 3 - TickingHeartRate/csv/4.csv | 3 - TickingHeartRate/csv/40.csv | 3 - TickingHeartRate/csv/41.csv | 3 - TickingHeartRate/csv/42.csv | 3 - TickingHeartRate/csv/43.csv | 3 - TickingHeartRate/csv/44.csv | 3 - TickingHeartRate/csv/45.csv | 3 - TickingHeartRate/csv/46.csv | 3 - TickingHeartRate/csv/47.csv | 3 - TickingHeartRate/csv/48.csv | 3 - TickingHeartRate/csv/49.csv | 3 - TickingHeartRate/csv/5.csv | 3 - TickingHeartRate/csv/50.csv | 3 - TickingHeartRate/csv/51.csv | 3 - TickingHeartRate/csv/52.csv | 3 - TickingHeartRate/csv/53.csv | 3 - TickingHeartRate/csv/54.csv | 3 - TickingHeartRate/csv/55.csv | 3 - TickingHeartRate/csv/56.csv | 3 - TickingHeartRate/csv/57.csv | 3 - TickingHeartRate/csv/58.csv | 3 - TickingHeartRate/csv/59.csv | 3 - TickingHeartRate/csv/6.csv | 3 - TickingHeartRate/csv/60.csv | 3 - TickingHeartRate/csv/61.csv | 3 - TickingHeartRate/csv/62.csv | 3 - TickingHeartRate/csv/63.csv | 3 - TickingHeartRate/csv/64.csv | 3 - TickingHeartRate/csv/65.csv | 3 - TickingHeartRate/csv/66.csv | 3 - TickingHeartRate/csv/67.csv | 3 - TickingHeartRate/csv/68.csv | 3 - TickingHeartRate/csv/69.csv | 3 - TickingHeartRate/csv/7.csv | 3 - TickingHeartRate/csv/70.csv | 3 - TickingHeartRate/csv/71.csv | 3 - TickingHeartRate/csv/72.csv | 3 - TickingHeartRate/csv/73.csv | 3 - TickingHeartRate/csv/74.csv | 3 - TickingHeartRate/csv/75.csv | 3 - TickingHeartRate/csv/76.csv | 3 - TickingHeartRate/csv/77.csv | 3 - TickingHeartRate/csv/78.csv | 3 - TickingHeartRate/csv/79.csv | 3 - TickingHeartRate/csv/8.csv | 3 - TickingHeartRate/csv/80.csv | 3 - TickingHeartRate/csv/81.csv | 3 - TickingHeartRate/csv/82.csv | 3 - TickingHeartRate/csv/83.csv | 3 - TickingHeartRate/csv/84.csv | 3 - TickingHeartRate/csv/85.csv | 3 - TickingHeartRate/csv/86.csv | 3 - TickingHeartRate/csv/87.csv | 3 - TickingHeartRate/csv/88.csv | 3 - TickingHeartRate/csv/89.csv | 3 - TickingHeartRate/csv/9.csv | 3 - TickingHeartRate/csv/90.csv | 3 - TickingHeartRate/csv/91.csv | 3 - TickingHeartRate/csv/92.csv | 3 - TickingHeartRate/csv/93.csv | 3 - TickingHeartRate/csv/94.csv | 3 - TickingHeartRate/csv/95.csv | 3 - TickingHeartRate/csv/96.csv | 3 - TickingHeartRate/csv/97.csv | 3 - TickingHeartRate/csv/98.csv | 3 - TickingHeartRate/csv/99.csv | 3 - TickingHeartRate/heartRateChartEnd.png | 3 - TickingHeartRate/heartRateChartMiddle.png | 3 - TickingHeartRate/heartRateChartStart.png | 3 - TickingHeartRate/heartRateTableStart.png | 3 - TickingHeartRate/runTickingHeartRateReplay.py | 34 -- 286 files changed, 2307 deletions(-) delete mode 100644 CryptoCurrency/Dockerfile delete mode 100644 CryptoCurrency/README.md delete mode 100644 CryptoCurrency/app.d/crypto.py delete mode 100644 CryptoCurrency/app.d/cryptoApp.app delete mode 100644 CryptoCurrency/crypto.png delete mode 100644 CryptoCurrency/crypto1.png delete mode 100644 CryptoCurrency/docker-compose.yml delete mode 100644 CryptoCurrency/script.py delete mode 100755 CryptoCurrency/start.sh delete mode 100644 Fit/README.md delete mode 100644 Fit/StravaExport.png delete mode 100644 Fit/ThursMorn.fit delete mode 100644 Fit/accessFit.py delete mode 100644 Fit/heartRateChart.png delete mode 100644 Fit/heartRateTable.png delete mode 100644 Prometheus/Dockerfile delete mode 100644 Prometheus/README.md delete mode 100644 Prometheus/app.d/app.app delete mode 100644 Prometheus/app.d/prometheus.py delete mode 100644 Prometheus/app.d/requirements.txt delete mode 100644 Prometheus/docker-compose.yml delete mode 100644 Prometheus/start.sh delete mode 100644 RedpandaStats/README.md delete mode 100644 RedpandaStats/docker-compose.yml delete mode 100644 RedpandaStats/kafka-produce.py delete mode 100644 TensorFlow/README.md delete mode 100644 TensorFlow/tensorflow.py delete mode 100755 TensorFlow/trainData.csv delete mode 100644 TickingHeartRate/README.md delete mode 100755 TickingHeartRate/csv/1.csv delete mode 100755 TickingHeartRate/csv/10.csv delete mode 100755 TickingHeartRate/csv/100.csv delete mode 100755 TickingHeartRate/csv/101.csv delete mode 100755 TickingHeartRate/csv/102.csv delete mode 100755 TickingHeartRate/csv/103.csv delete mode 100755 TickingHeartRate/csv/104.csv delete mode 100755 TickingHeartRate/csv/105.csv delete mode 100755 TickingHeartRate/csv/106.csv delete mode 100755 TickingHeartRate/csv/107.csv delete mode 100755 TickingHeartRate/csv/108.csv delete mode 100755 TickingHeartRate/csv/109.csv delete mode 100755 TickingHeartRate/csv/11.csv delete mode 100755 TickingHeartRate/csv/110.csv delete mode 100755 TickingHeartRate/csv/111.csv delete mode 100755 TickingHeartRate/csv/112.csv delete mode 100755 TickingHeartRate/csv/113.csv delete mode 100755 TickingHeartRate/csv/114.csv delete mode 100755 TickingHeartRate/csv/115.csv delete mode 100755 TickingHeartRate/csv/116.csv delete mode 100755 TickingHeartRate/csv/117.csv delete mode 100755 TickingHeartRate/csv/118.csv delete mode 100755 TickingHeartRate/csv/119.csv delete mode 100755 TickingHeartRate/csv/12.csv delete mode 100755 TickingHeartRate/csv/120.csv delete mode 100755 TickingHeartRate/csv/121.csv delete mode 100755 TickingHeartRate/csv/122.csv delete mode 100755 TickingHeartRate/csv/123.csv delete mode 100755 TickingHeartRate/csv/124.csv delete mode 100755 TickingHeartRate/csv/125.csv delete mode 100755 TickingHeartRate/csv/126.csv delete mode 100755 TickingHeartRate/csv/127.csv delete mode 100755 TickingHeartRate/csv/128.csv delete mode 100755 TickingHeartRate/csv/129.csv delete mode 100755 TickingHeartRate/csv/13.csv delete mode 100755 TickingHeartRate/csv/130.csv delete mode 100755 TickingHeartRate/csv/131.csv delete mode 100755 TickingHeartRate/csv/132.csv delete mode 100755 TickingHeartRate/csv/133.csv delete mode 100755 TickingHeartRate/csv/134.csv delete mode 100755 TickingHeartRate/csv/135.csv delete mode 100755 TickingHeartRate/csv/136.csv delete mode 100755 TickingHeartRate/csv/137.csv delete mode 100755 TickingHeartRate/csv/138.csv delete mode 100755 TickingHeartRate/csv/139.csv delete mode 100755 TickingHeartRate/csv/14.csv delete mode 100755 TickingHeartRate/csv/140.csv delete mode 100755 TickingHeartRate/csv/141.csv delete mode 100755 TickingHeartRate/csv/142.csv delete mode 100755 TickingHeartRate/csv/143.csv delete mode 100755 TickingHeartRate/csv/144.csv delete mode 100755 TickingHeartRate/csv/145.csv delete mode 100755 TickingHeartRate/csv/146.csv delete mode 100755 TickingHeartRate/csv/147.csv delete mode 100755 TickingHeartRate/csv/148.csv delete mode 100755 TickingHeartRate/csv/149.csv delete mode 100755 TickingHeartRate/csv/15.csv delete mode 100755 TickingHeartRate/csv/150.csv delete mode 100755 TickingHeartRate/csv/151.csv delete mode 100755 TickingHeartRate/csv/152.csv delete mode 100755 TickingHeartRate/csv/153.csv delete mode 100755 TickingHeartRate/csv/154.csv delete mode 100755 TickingHeartRate/csv/155.csv delete mode 100755 TickingHeartRate/csv/156.csv delete mode 100755 TickingHeartRate/csv/157.csv delete mode 100755 TickingHeartRate/csv/158.csv delete mode 100755 TickingHeartRate/csv/159.csv delete mode 100755 TickingHeartRate/csv/16.csv delete mode 100755 TickingHeartRate/csv/160.csv delete mode 100755 TickingHeartRate/csv/161.csv delete mode 100755 TickingHeartRate/csv/162.csv delete mode 100755 TickingHeartRate/csv/163.csv delete mode 100755 TickingHeartRate/csv/164.csv delete mode 100755 TickingHeartRate/csv/165.csv delete mode 100755 TickingHeartRate/csv/166.csv delete mode 100755 TickingHeartRate/csv/167.csv delete mode 100755 TickingHeartRate/csv/168.csv delete mode 100755 TickingHeartRate/csv/169.csv delete mode 100755 TickingHeartRate/csv/17.csv delete mode 100755 TickingHeartRate/csv/170.csv delete mode 100755 TickingHeartRate/csv/171.csv delete mode 100755 TickingHeartRate/csv/172.csv delete mode 100755 TickingHeartRate/csv/173.csv delete mode 100755 TickingHeartRate/csv/174.csv delete mode 100755 TickingHeartRate/csv/175.csv delete mode 100755 TickingHeartRate/csv/176.csv delete mode 100755 TickingHeartRate/csv/177.csv delete mode 100755 TickingHeartRate/csv/178.csv delete mode 100755 TickingHeartRate/csv/179.csv delete mode 100755 TickingHeartRate/csv/18.csv delete mode 100755 TickingHeartRate/csv/180.csv delete mode 100755 TickingHeartRate/csv/181.csv delete mode 100755 TickingHeartRate/csv/182.csv delete mode 100755 TickingHeartRate/csv/183.csv delete mode 100755 TickingHeartRate/csv/184.csv delete mode 100755 TickingHeartRate/csv/185.csv delete mode 100755 TickingHeartRate/csv/186.csv delete mode 100755 TickingHeartRate/csv/187.csv delete mode 100755 TickingHeartRate/csv/188.csv delete mode 100755 TickingHeartRate/csv/189.csv delete mode 100755 TickingHeartRate/csv/19.csv delete mode 100755 TickingHeartRate/csv/190.csv delete mode 100755 TickingHeartRate/csv/191.csv delete mode 100755 TickingHeartRate/csv/192.csv delete mode 100755 TickingHeartRate/csv/193.csv delete mode 100755 TickingHeartRate/csv/194.csv delete mode 100755 TickingHeartRate/csv/195.csv delete mode 100755 TickingHeartRate/csv/196.csv delete mode 100755 TickingHeartRate/csv/197.csv delete mode 100755 TickingHeartRate/csv/198.csv delete mode 100755 TickingHeartRate/csv/199.csv delete mode 100755 TickingHeartRate/csv/2.csv delete mode 100755 TickingHeartRate/csv/20.csv delete mode 100755 TickingHeartRate/csv/200.csv delete mode 100755 TickingHeartRate/csv/201.csv delete mode 100755 TickingHeartRate/csv/202.csv delete mode 100755 TickingHeartRate/csv/203.csv delete mode 100755 TickingHeartRate/csv/204.csv delete mode 100755 TickingHeartRate/csv/205.csv delete mode 100755 TickingHeartRate/csv/206.csv delete mode 100755 TickingHeartRate/csv/207.csv delete mode 100755 TickingHeartRate/csv/208.csv delete mode 100755 TickingHeartRate/csv/209.csv delete mode 100755 TickingHeartRate/csv/21.csv delete mode 100755 TickingHeartRate/csv/210.csv delete mode 100755 TickingHeartRate/csv/211.csv delete mode 100755 TickingHeartRate/csv/212.csv delete mode 100755 TickingHeartRate/csv/213.csv delete mode 100755 TickingHeartRate/csv/214.csv delete mode 100755 TickingHeartRate/csv/215.csv delete mode 100755 TickingHeartRate/csv/216.csv delete mode 100755 TickingHeartRate/csv/217.csv delete mode 100755 TickingHeartRate/csv/218.csv delete mode 100755 TickingHeartRate/csv/219.csv delete mode 100755 TickingHeartRate/csv/22.csv delete mode 100755 TickingHeartRate/csv/220.csv delete mode 100755 TickingHeartRate/csv/221.csv delete mode 100755 TickingHeartRate/csv/222.csv delete mode 100755 TickingHeartRate/csv/223.csv delete mode 100755 TickingHeartRate/csv/224.csv delete mode 100755 TickingHeartRate/csv/225.csv delete mode 100755 TickingHeartRate/csv/226.csv delete mode 100755 TickingHeartRate/csv/227.csv delete mode 100755 TickingHeartRate/csv/228.csv delete mode 100755 TickingHeartRate/csv/229.csv delete mode 100755 TickingHeartRate/csv/23.csv delete mode 100755 TickingHeartRate/csv/230.csv delete mode 100755 TickingHeartRate/csv/231.csv delete mode 100755 TickingHeartRate/csv/232.csv delete mode 100755 TickingHeartRate/csv/233.csv delete mode 100755 TickingHeartRate/csv/234.csv delete mode 100755 TickingHeartRate/csv/235.csv delete mode 100755 TickingHeartRate/csv/236.csv delete mode 100755 TickingHeartRate/csv/237.csv delete mode 100755 TickingHeartRate/csv/238.csv delete mode 100755 TickingHeartRate/csv/239.csv delete mode 100755 TickingHeartRate/csv/24.csv delete mode 100755 TickingHeartRate/csv/240.csv delete mode 100755 TickingHeartRate/csv/241.csv delete mode 100755 TickingHeartRate/csv/242.csv delete mode 100755 TickingHeartRate/csv/243.csv delete mode 100755 TickingHeartRate/csv/244.csv delete mode 100755 TickingHeartRate/csv/245.csv delete mode 100755 TickingHeartRate/csv/246.csv delete mode 100755 TickingHeartRate/csv/247.csv delete mode 100755 TickingHeartRate/csv/248.csv delete mode 100755 TickingHeartRate/csv/249.csv delete mode 100755 TickingHeartRate/csv/25.csv delete mode 100755 TickingHeartRate/csv/250.csv delete mode 100755 TickingHeartRate/csv/26.csv delete mode 100755 TickingHeartRate/csv/27.csv delete mode 100755 TickingHeartRate/csv/28.csv delete mode 100755 TickingHeartRate/csv/29.csv delete mode 100755 TickingHeartRate/csv/3.csv delete mode 100755 TickingHeartRate/csv/30.csv delete mode 100755 TickingHeartRate/csv/31.csv delete mode 100755 TickingHeartRate/csv/32.csv delete mode 100755 TickingHeartRate/csv/33.csv delete mode 100755 TickingHeartRate/csv/34.csv delete mode 100755 TickingHeartRate/csv/35.csv delete mode 100755 TickingHeartRate/csv/36.csv delete mode 100755 TickingHeartRate/csv/37.csv delete mode 100755 TickingHeartRate/csv/38.csv delete mode 100755 TickingHeartRate/csv/39.csv delete mode 100755 TickingHeartRate/csv/4.csv delete mode 100755 TickingHeartRate/csv/40.csv delete mode 100755 TickingHeartRate/csv/41.csv delete mode 100755 TickingHeartRate/csv/42.csv delete mode 100755 TickingHeartRate/csv/43.csv delete mode 100755 TickingHeartRate/csv/44.csv delete mode 100755 TickingHeartRate/csv/45.csv delete mode 100755 TickingHeartRate/csv/46.csv delete mode 100755 TickingHeartRate/csv/47.csv delete mode 100755 TickingHeartRate/csv/48.csv delete mode 100755 TickingHeartRate/csv/49.csv delete mode 100755 TickingHeartRate/csv/5.csv delete mode 100755 TickingHeartRate/csv/50.csv delete mode 100755 TickingHeartRate/csv/51.csv delete mode 100755 TickingHeartRate/csv/52.csv delete mode 100755 TickingHeartRate/csv/53.csv delete mode 100755 TickingHeartRate/csv/54.csv delete mode 100755 TickingHeartRate/csv/55.csv delete mode 100755 TickingHeartRate/csv/56.csv delete mode 100755 TickingHeartRate/csv/57.csv delete mode 100755 TickingHeartRate/csv/58.csv delete mode 100755 TickingHeartRate/csv/59.csv delete mode 100755 TickingHeartRate/csv/6.csv delete mode 100755 TickingHeartRate/csv/60.csv delete mode 100755 TickingHeartRate/csv/61.csv delete mode 100755 TickingHeartRate/csv/62.csv delete mode 100755 TickingHeartRate/csv/63.csv delete mode 100755 TickingHeartRate/csv/64.csv delete mode 100755 TickingHeartRate/csv/65.csv delete mode 100755 TickingHeartRate/csv/66.csv delete mode 100755 TickingHeartRate/csv/67.csv delete mode 100755 TickingHeartRate/csv/68.csv delete mode 100755 TickingHeartRate/csv/69.csv delete mode 100755 TickingHeartRate/csv/7.csv delete mode 100755 TickingHeartRate/csv/70.csv delete mode 100755 TickingHeartRate/csv/71.csv delete mode 100755 TickingHeartRate/csv/72.csv delete mode 100755 TickingHeartRate/csv/73.csv delete mode 100755 TickingHeartRate/csv/74.csv delete mode 100755 TickingHeartRate/csv/75.csv delete mode 100755 TickingHeartRate/csv/76.csv delete mode 100755 TickingHeartRate/csv/77.csv delete mode 100755 TickingHeartRate/csv/78.csv delete mode 100755 TickingHeartRate/csv/79.csv delete mode 100755 TickingHeartRate/csv/8.csv delete mode 100755 TickingHeartRate/csv/80.csv delete mode 100755 TickingHeartRate/csv/81.csv delete mode 100755 TickingHeartRate/csv/82.csv delete mode 100755 TickingHeartRate/csv/83.csv delete mode 100755 TickingHeartRate/csv/84.csv delete mode 100755 TickingHeartRate/csv/85.csv delete mode 100755 TickingHeartRate/csv/86.csv delete mode 100755 TickingHeartRate/csv/87.csv delete mode 100755 TickingHeartRate/csv/88.csv delete mode 100755 TickingHeartRate/csv/89.csv delete mode 100755 TickingHeartRate/csv/9.csv delete mode 100755 TickingHeartRate/csv/90.csv delete mode 100755 TickingHeartRate/csv/91.csv delete mode 100755 TickingHeartRate/csv/92.csv delete mode 100755 TickingHeartRate/csv/93.csv delete mode 100755 TickingHeartRate/csv/94.csv delete mode 100755 TickingHeartRate/csv/95.csv delete mode 100755 TickingHeartRate/csv/96.csv delete mode 100755 TickingHeartRate/csv/97.csv delete mode 100755 TickingHeartRate/csv/98.csv delete mode 100755 TickingHeartRate/csv/99.csv delete mode 100644 TickingHeartRate/heartRateChartEnd.png delete mode 100644 TickingHeartRate/heartRateChartMiddle.png delete mode 100644 TickingHeartRate/heartRateChartStart.png delete mode 100644 TickingHeartRate/heartRateTableStart.png delete mode 100644 TickingHeartRate/runTickingHeartRateReplay.py diff --git a/CryptoCurrency/Dockerfile b/CryptoCurrency/Dockerfile deleted file mode 100644 index f4d1bad2..00000000 --- a/CryptoCurrency/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM ghcr.io/deephaven/grpc-api -COPY app.d/ /app.d -RUN pip3 install pycoingecko diff --git a/CryptoCurrency/README.md b/CryptoCurrency/README.md deleted file mode 100644 index 7229b9b6..00000000 --- a/CryptoCurrency/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# CryptoCurrency - -The script will pull live and historical data for specified cryptocurrencies from the [CoinGecko](https://www.coingecko.com/) website into [Deephaven](https://github.com/deephaven/deephaven-core). - - -## How it works - -### Deephaven application mode - -This app runs using [Deephaven's application mode](https://deephaven.io/core/docs/how-to-guides/app-mode/). - -### Components -* `Dockerfile` - The dockerfile for the application. This extends the default Deephaven image to add dependencies. See our guide, [How to install Python packages](https://deephaven.io/core/docs/how-to-guides/install-python-packages/#add-packages-to-a-custom-docker-image), for more information. -* `docker-compose.yml` - The Docker Compose file for the application. This is mostly the same as the [Deephaven docker-compose file](https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/python-examples/docker-compose.yml), with modifications to run in application mode. -* `start.sh` - A simple helper script to launch the application. -* `app.d/cryptoApp.app` - The Deephaven application mode app file. -* `app.d/crypto.py` - The Python script that pulls the data from [CoinGecko](https://www.coingecko.com/) and stores it into Deephaven. -* `crypto.png` - Image of the end state of Deephaven tables. - - -### High level overview - -This app pulls data from [CoinGecko](https://www.coingecko.com/) through HTTP requests. The API responses are deserialized, and the desired values are extracted and stored in a Deephaven table. - -Once data is collected and tables are created, various Deephaven queries are then performed on the tables. See the [Deephaven Community Core documentation](https://deephaven.io/core/docs/) to learn more about these methods. - -This app writes to Deephaven tables both statically and dynamically. - -## Dependencies - -* The [Deephaven-core dependencies](https://github.com/deephaven/deephaven-core#required-dependencies) are required for this project. - -## Launch - -Before launching, you can modify the `ids` and `daysHistory` values in `crypto.py`. - -Once you are set, simply run the following to launch the app: - -``` -sh start.sh -``` - -Go to [http://localhost:10000/ide](http://localhost:10000/ide) to view the tables in the top right **Panels** tab! - -## Variables -- **`secondsToSleep`:** Integer number of seconds between data pulls. It is recommended that this number is 10 or higher. Note that too frequent requests will generate an HTTP status: '429 Too Many Requests'. The [CoinGecko free API](https://www.coingecko.com/en/api/documentation) has a rate limit of 50 calls/minute. -- **`daysHistory`:** Integer number of days to collect history. Data has automatic granularity. - - Minutely data will be returned for a duration within 1 day. - - Hourly data will be returned for a duration between 1 day and 90 days. - - Daily data will be returned for a duration above 90 days. -- **`ids`:** Array of coins to pull information on. For a full and current list of values, execute the following: `curl -X GET "https://api.coingecko.com/api/v3/coins/list" -H "accept: application/json"` - -# Outcome - -Upon running the script in your Deephaven IDE, the `HistoricalCryptoTable` and `LiveCryptoTable` tables will be created. - - -![img](./crypto1.png) - -The result table includes the following columns: - -- **`Timestamp`:** The date and time that the coin value was updated. -- **`Coin`:** The name of the coin. -- **`Price`:** Refers to the current global volume-weighted average price of a coin traded on an active cryptoasset exchange as tracked by CoinGecko. -- **`MarketCap`:** One of the metrics used to measure the relative size of a coin. Market Capitalization is calculated by multiplying Coin Price with Available Supply. -- **`TotalVolume`:** The total trading volume of a coin across all active coin exchanges tracked by CoinGecko. - - -# Source and License - -This script was built using the [CoinGecko crypto API](https://www.coingecko.com/). This allows one to track over 7,000 coins such as bitcoin, litecoin, and ethereum from more than 400 exchanges and growing. diff --git a/CryptoCurrency/app.d/crypto.py b/CryptoCurrency/app.d/crypto.py deleted file mode 100644 index 4aabbf6a..00000000 --- a/CryptoCurrency/app.d/crypto.py +++ /dev/null @@ -1,74 +0,0 @@ -from pycoingecko import CoinGeckoAPI - -from deephaven.DBTimeUtils import secondsToTime, millisToTime -from deephaven.TableTools import merge -from deephaven import DynamicTableWriter - -import deephaven.Types as dht -import jpy - -from time import sleep, time -import pandas as pd -import threading - -# secondsToSleep should be 10 or higher. If too fast, will hit request limit. -secondsToSleep = 60 - -# if getHistory = true, the days to pull -daysHistory = 90 - -# coins to get data -ids = ['bitcoin', 'ethereum', 'litecoin', 'dogecoin', 'tether', 'binancecoin', 'cardano', 'ripple', 'polkadot'] - -getLive = True - -getHistory = True - -# below this line there are no variables that need changed -######################################################################## - -def get_coingecko_table_historical(daysHistory = 90): - tableArray = [] - cg = CoinGeckoAPI() - - # get historical data - for id in ids: - coin_data_hist = cg.get_coin_market_chart_by_id(id, vs_currency = "usd", days = daysHistory) - sub = pd.DataFrame(coin_data_hist) - coin_query = "Coin = `{id}`".format(id=id) - tableArray.append(dataFrameToTable(sub).view("DateTime = millisToTime((long)prices_[i][0])", coin_query, "Price = prices_[i][1]", "MarketCap = market_caps_[i][1]", "TotalVolume = total_volumes_[i][1]").moveUpColumns("DateTime", "Coin")) - return merge(tableArray).selectDistinct("DateTime", "Coin", "Price", "MarketCap", "TotalVolume").sortDescending("DateTime", "Coin") - - -def get_coingecko_table_live(secondsToSleep = 60): - cg = CoinGeckoAPI() - - # array to store tables for current and previous data - tableArray=[] - - tableWriter = DynamicTableWriter(['Coin', 'DateTime', 'Price', 'MarketCap', 'TotalVolume'], [dht.string, dht.datetime, dht.double, dht.double, dht.double]) - - tableArray.append(tableWriter.getTable()) - result = merge(tableArray).selectDistinct('DateTime', 'Coin', 'Price', 'MarketCap', 'TotalVolume').sortDescending('DateTime', 'Coin') - - def thread_func(): - cg.get_coins_markets(vs_currency = 'usd') - - while True: - coin_data = cg.get_price(ids, vs_currencies = 'usd', include_market_cap = True, include_24hr_vol = True, include_24hr_change = False, include_last_updated_at = True) - - for id in ids: - #Add new data to the dynamic table - tableWriter.logRow( id, secondsToTime(int(coin_data[id]['last_updated_at'])), float(coin_data[id]['usd']), coin_data[id]['usd_market_cap'], coin_data[id]['usd_24h_vol']) - - sleep(secondsToSleep) - - thread = threading.Thread(target = thread_func) - thread.start() - return result - -if getHistory: - HistoricalCryptoTable = get_coingecko_table_historical(daysHistory) - -if getLive: - LiveCryptoTable = get_coingecko_table_live(secondsToSleep) diff --git a/CryptoCurrency/app.d/cryptoApp.app b/CryptoCurrency/app.d/cryptoApp.app deleted file mode 100644 index 7afa9240..00000000 --- a/CryptoCurrency/app.d/cryptoApp.app +++ /dev/null @@ -1,6 +0,0 @@ -type=script -scriptType=python -enabled=true -id=io.deephaven.examples.crypto.coingecko -name=Crypto application with Coingecko -file_0=crypto.py diff --git a/CryptoCurrency/crypto.png b/CryptoCurrency/crypto.png deleted file mode 100644 index ced1ffbb..00000000 --- a/CryptoCurrency/crypto.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d939648b731b43fe0b06e65a768245904ca8ee03b68da1588fb841ab38cf7eb7 -size 508286 diff --git a/CryptoCurrency/crypto1.png b/CryptoCurrency/crypto1.png deleted file mode 100644 index de774b68..00000000 --- a/CryptoCurrency/crypto1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:036f2c707158a66096d7a32ec7ced2f1b263045f98fa0c114dbd2491674c911a -size 555740 diff --git a/CryptoCurrency/docker-compose.yml b/CryptoCurrency/docker-compose.yml deleted file mode 100644 index ea64ea9c..00000000 --- a/CryptoCurrency/docker-compose.yml +++ /dev/null @@ -1,42 +0,0 @@ -version: "3.4" - -services: - grpc-api: - image: deephaven-examples/coingecko-grpc-api:latest - expose: - - '8080' - volumes: - - ./data:/data - - api-cache:/cache - environment: - - JAVA_TOOL_OPTIONS=-Xmx4g -Ddeephaven.console.type=python -Ddeephaven.application.dir=/app.d - - web: - image: ghcr.io/deephaven/web:${VERSION:-latest} - expose: - - '80' - volumes: - - ./data:/data - - web-tmp:/tmp - - grpc-proxy: - image: ghcr.io/deephaven/grpc-proxy:${VERSION:-latest} - environment: - - BACKEND_ADDR=grpc-api:8080 - depends_on: - - grpc-api - expose: - - '8080' - - envoy: - image: ghcr.io/deephaven/envoy:${VERSION:-latest} - depends_on: - - web - - grpc-proxy - - grpc-api - ports: - - "10000:10000" - -volumes: - web-tmp: - api-cache: diff --git a/CryptoCurrency/script.py b/CryptoCurrency/script.py deleted file mode 100644 index dda3764d..00000000 --- a/CryptoCurrency/script.py +++ /dev/null @@ -1,68 +0,0 @@ -import os -try: - from pycoingecko import CoinGeckoAPI -except ImportError: - os.system("pip install pycoingecko") - from pycoingecko import CoinGeckoAPI - -from deephaven.DateTimeUtils import secondsToTime, millisToTime -from deephaven.TableTools import merge -from deephaven import DynamicTableWriter -import deephaven.Types as dht - - -from time import sleep, time -import pandas as pd -import threading - - -# minutes to query crypto prices -timeToWatch = 2 - -# secondsToSleep should be 10 or higher. If too fast, will hit request limit. -secondsToSleep = 10 - - -getHistory = False - -# if getHistory = true, the days to pull -daysHistory = 90 - -# coins to get data -ids=['bitcoin', 'ethereum','litecoin', 'dogecoin', 'tether', 'binancecoin', 'cardano', 'ripple', 'polkadot'] - -# array to store tables for current and previous data -tableArray=[] - -tableWriter = DynamicTableWriter(["Coin", "Timestamp", "Price", "MarketCap", "TotalVolume"], [dht.string, dht.datetime, dht.double, dht.double, dht.double]) - - -tableArray.append(tableWriter.getTable()) - -cg = CoinGeckoAPI() - -# get historical data -if getHistory: - for names in ids: - coin_data_hist = cg.get_coin_market_chart_by_id(names, vs_currency = "usd", days = daysHistory) - sub = pd.DataFrame(coin_data_hist) - tableArray.append(dataFrameToTable(sub).view("Timestamp = millisToTime((long)prices_[i][0])", "Coin = names", "Price = prices_[i][1]", "MarketCap = market_caps_[i][1]", "TotalVolume = total_volumes_[i][1]").moveUpColumns("Timestamp", "Coin")) - -#add each coin data to the master table -result = merge(tableArray).selectDistinct("Timestamp", "Coin", "Price", "MarketCap", "TotalVolume").sortDescending("Timestamp", "Coin") - -def thread_func(): - - cg.get_coins_markets(vs_currency = 'usd') - - for i in range(int(timeToWatch*60/secondsToSleep)): - coin_data = cg.get_price(ids, vs_currencies = 'usd', include_market_cap = True, include_24hr_vol = True, include_24hr_change = False, include_last_updated_at = True) - - for id in ids: - #Add new data to the dynamic table - tableWriter.logRow( id, secondsToTime(int(coin_data[id]['last_updated_at'])), float(coin_data[id]['usd']), coin_data[id]['usd_market_cap'], coin_data[id]['usd_24h_vol']) - - sleep(secondsToSleep) - -thread = threading.Thread(target = thread_func) -thread.start() \ No newline at end of file diff --git a/CryptoCurrency/start.sh b/CryptoCurrency/start.sh deleted file mode 100755 index 5b03d450..00000000 --- a/CryptoCurrency/start.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker build --tag deephaven-examples/coingecko-grpc-api . -docker-compose up diff --git a/Fit/README.md b/Fit/README.md deleted file mode 100644 index da8a1070..00000000 --- a/Fit/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Fit file as available from Strava - -Pull your own data from your [Strava](https://www.strava.com/) account. Visualize, manipulate, and combine your data with other sources, all while maintaining full ownership and control of the data in your own environment. - -## Table of contents - - * `ThursMorn.fit` - The data used to run this example. - * `accessFit.py` - Python script to demonstrate fit data inside Deephaven. - * `*.png` - Images used in this help. - -## Steps to run - -These steps can be run with our example data or your own. - -1. Login to your Strava account. -1. Select an activity. -1. At the bottom of the menu, select **...** for more. - - ![Strava export menu](StravaExport.png "Strava export menu") -1. Select **Export Original**. Provided you have supplied the data in fit format, this should now give a downloaded file with the `.fit` extension. -1. Put this `.fit` file in the data folder underneath your Docker starting location: - See our [Quickstart](https://deephaven.io/core/docs/tutorials/quickstart/#set-up-your-deephaven-deployment) for more information. - Add another directory level if desired to keep various projects segmented. -1. Ensure fitparse is setup (see [below](#using-fitparse-module)). -1. Run the `accessFit.py` file in a Deephaven console. -1. The `heart_rate_data` table should appear. - - ![heart_rate_data](heartRateTable.png "heart_rate_data") -1. Click the **Table Options** menu in the `heart_rate_data` tab. -1. Select **Chart Builder**. -1. Select defaults: `Line`, `X-Axis=Timestamp`, `Series=HeartRate` -1. Press **Create** (note: you may need to scroll to see the button.) -1. A chart should appear: - - ![heart_rate_data](heartRateChart.png "heart_rate_data") - -## Using fitparse module - -To use fitparse, install via your current Python session: - -```python -import os -os.system("pip install fitparse") -``` - -For more details on making the install persist between sessions, see [How to install Python packages](https://github.com/deephaven/deephaven.io/blob/main/core/docs/how-to-guides/install-python-packages.md). - -Note: Your mileage may vary if using a `.fit` file which reports different data types. Different sensors can report different data. In the example here, both GPS and heart rate monitor data is intertwined. - -## Advanced challenge - -Some of the most interesting use cases for this data are to correlate the data with other sources of interest to you. - -The first step is importing many `.fit` files to compare: - -- Today's heart rate with last month's heart rate. -- Average heart rate last week/month. -- Heart rate at different points during the day (morning, lunch, bedtime). -- Correlate live heart rate data with past heart rate data from your `.fit` files: see [`tickingHeartRate`](../tickingHeartRate/README.md) for ideas on getting started with live heart rate data. - -For more insight, correlate this data with: - -- diet macro nutrients - do you run faster when you have more protein? -- sleep patterns - is heart rate affected by your amount of sleep? -- weather - temperature, wind chill, humidity, etc. -- health improvements - do you see positive gains in heart health over time? - -# Source and License - -This data was contributed to the public domain by the author. It is provided here for demonstrative purposes without any warranty for fitness of purpose or usability. diff --git a/Fit/StravaExport.png b/Fit/StravaExport.png deleted file mode 100644 index 6b518c65..00000000 --- a/Fit/StravaExport.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:696554c5adbdb5a50d7a567a1ee7024355ef2ae633f00660fae8e475205c6037 -size 48658 diff --git a/Fit/ThursMorn.fit b/Fit/ThursMorn.fit deleted file mode 100644 index f516f18488ceae4d5a6d9a3b7abca5302cd68f01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112506 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%0AT=RgpKBi)c3&dWu-qV%r8Qg4He9*kI!5bOjHFr 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 0): - counter -= 1 - else: - break - - for field in record: - if field.name.startswith('heart_rate'): - mode="hr" - if field.name.startswith('enhanced'): - mode="gps" - # Other types can be added, following a similar pattern. - - # Go through all the data entries in this record - items=list(record) - if (mode == "hr"): - raw_heart_rate = str(items[0]).split()[1] - final_heart_rate = int(raw_heart_rate) - raw_time = str(items[1]).split()[1] - final_time = convertDateTime(raw_time.replace(" ", "T") + timezone) - hr_table_writer.logRow(final_time, final_heart_rate) - - if (mode == "gps"): - raw_time = str(items[6])[11:30] - final_time = convertDateTime(raw_time.replace(" ", "T") + timezone) - - final_altitude = float(str(items[0]).split()[1]) - final_enh_speed = float(str(items[1]).split()[1]) - final_pos_lat = int(str(items[3]).split()[1]) - final_pos_long = int(str(items[4]).split()[1]) - final_speed = float(str(items[5]).split()[1]) - - raw_gps_acc = str(items[2]).split()[1] - # If preferred, the col type for GPS could be set as String, then further processing done even when value is None - if raw_gps_acc != "None": - final_gps_acc = int(str(items[2]).split()[1]) - gps_table_writer.logRow(final_time, final_altitude, final_enh_speed, final_gps_acc, final_pos_lat, final_pos_long, final_speed) \ No newline at end of file diff --git a/Fit/heartRateChart.png b/Fit/heartRateChart.png deleted file mode 100644 index d7eb5359..00000000 --- a/Fit/heartRateChart.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e85f8cec79e58c15ac4d1b349b4a1ce2dc7224b0e082bc9bb4cc6ed2ccd6e7e -size 27072 diff --git a/Fit/heartRateTable.png b/Fit/heartRateTable.png deleted file mode 100644 index 2bcb0368..00000000 --- a/Fit/heartRateTable.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:181b323acedd33610c710f397b5711218073debf0f13df5a9fb76e84238d70f8 -size 15233 diff --git a/NoodlePug/README.md b/NoodlePug/README.md index 7df62e2d..eaaf0860 100644 --- a/NoodlePug/README.md +++ b/NoodlePug/README.md @@ -14,94 +14,6 @@ Here we want to find out, does Noodle normally have a [case of the Mondays](http - `Day`: The day of the week the observation occurred. -# How to use the data - -[Launch Deephaven](https://deephaven.io/core/docs/tutorials/quickstart/) with examples. - - -For Python: - -```bash -# Choose your compose file selected above. -compose_file=https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/python-examples/docker-compose.yml -curl -O "${compose_file}" -docker-compose pull -docker-compose up -d -``` - -For Groovy: - -```bash -# Choose your compose file selected above. -compose_file=https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/groovy-examples/docker-compose.yml -curl -O "${compose_file}" -docker-compose pull -docker-compose up -d -``` - - -Navigate to [http://localhost:10000/ide/](http://localhost:10000/ide/), then use the script below to open some tables in the Deephaven IDE. - -```python -from deephaven.TableTools import read_csv - -noodle_pug = read_csv("https://media.githubusercontent.com/media/deephaven/examples/4f15c29972ae216b5bd8077b5e3dc57351eccb27/NoodlePug/noodle_pug.csv") - -number_bones = noodle_pug.dropColumns("Date", "Day_of_Week", "Weather_NYC").sumBy() - -number_per_day = noodle_pug.dropColumns("Date","Weather_NYC").sumBy("Day_of_Week") - -number_per_weather = noodle_pug.dropColumns("Date", "Day_of_Week").sumBy("Weather_NYC") -``` - - -```groovy -noodle_pug = read_csv("https://media.githubusercontent.com/media/deephaven/examples/4f15c29972ae216b5bd8077b5e3dc57351eccb27/NoodlePug/noodle_pug.csv") - -number_bones = noodle_pug.dropColumns("Date", "Day_of_Week", "Weather_NYC").sumBy() - -number_per_day = noodle_pug.dropColumns("Date","Weather_NYC").sumBy("Day_of_Week") - -number_per_weather = noodle_pug.dropColumns("Date", "Day_of_Week").sumBy("Weather_NYC") -``` - - -Three Deephaven tables populate the IDE. Does Noodle have more "No Bone" days on Monday? - - -# Planet data - -As an interesting use case, we wanted to see if the separation of Mercury and Jupiter is what causes Noodles to have No Bones days. - -Here, we have a function that does a calculation to find the separation of the two planets and then we see how this correlates with Bones and No Bones days. We see that for Bone days, we are accurate 66% of the time - not bad! But for No Bones days, we are accurate with this model 80% of the time! - -We look at the week ahead and give our predictions. Now the question is, what really causes No Bones days? We think it is a complex mixture of all these models. - -```python -os.system("pip install ephem") - -import ephem - -def sep(date): - m = ephem.Mercury() - j = ephem.Jupiter() - m.compute(date) - j.compute(date) - return (int)(10*ephem.separation(m, j)) - -planet = noodle_pug.update("Mercury_Jupiter_sep = (int)sep(Date)","Prediction = (Mercury_Jupiter_sep <= 13) ? `no Bones` : `Bones`") - -planet_no_bones = planet.where("Prediction.startsWith(`no`)").dropColumns("Date", "Day_of_Week", "Weather_NYC","Mercury_Jupiter_sep", "Prediction").sumBy() - -planet_bones = planet.where("Prediction.startsWith(`Bone`)").dropColumns("Date", "Day_of_Week", "Weather_NYC","Mercury_Jupiter_sep", "Prediction").sumBy() - -from deephaven.TableTools import newTable, stringCol - -future = newTable( - stringCol("Date", "11/1/2021", "11/2/2021", "11/3/2021", "11/4/2021", "11/5/2021"))\ - .update("Prediction = ((int)sep(Date)<=13) ? `no Bones` : `Bones`") -``` - # Source and License This data was built from viewing TikToks created by [@jongraz](https://www.tiktok.com/@jongraz?refer=embed). It is provided here for demonstrative use without any warranty as to the accuracy, reliability, or completeness of the data. diff --git a/Prometheus/Dockerfile b/Prometheus/Dockerfile deleted file mode 100644 index 76429ec8..00000000 --- a/Prometheus/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM ghcr.io/deephaven/grpc-api -COPY app.d /app.d -RUN pip3 install -r /app.d/requirements.txt diff --git a/Prometheus/README.md b/Prometheus/README.md deleted file mode 100644 index cde17765..00000000 --- a/Prometheus/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Prometheus - -[Prometheus](https://prometheus.io/) is an open-source systems monitoring and alerting toolkit that collects and stores its metrics as time series data. This sample app shows how to ingest data from Prometheus into [Deephaven](https://deephaven.io/). - -## How it works - -### Deephaven application mode - -This app runs using [Deephaven's application mode](https://deephaven.io/core/docs/how-to-guides/app-mode/). - -### Components - -* `Dockerfile` - The dockerfile for the application. This extends the default Deephaven image to add dependencies. See our guide, [How to install Python packages](https://deephaven.io/core/docs/how-to-guides/install-python-packages/#add-packages-to-a-custom-docker-image), for more information. -* `docker-compose.yml` - The Docker Compose file for the application. This is mostly the same as the [Deephaven docker-compose file](https://raw.githubusercontent.com/deephaven/deephaven-core/main/containers/python-examples/docker-compose.yml) with modifications to run Prometheus, application mode, and the custom dependencies. -* `start.sh` - A simple helper script to launch the application. -* `app.d/app.app` - The Deephaven application mode app file. -* `app.d/requirements.txt` - Python dependencies for the application. -* `app.d/prometheus.py` - The Python script that pulls the data from Prometheus and stores it into Deephaven. - -### High level overview - -This app pulls data from [Prometheus's API](https://prometheus.io/docs/prometheus/latest/querying/api/) through HTTP requests. The API responses are deserialized, and the desired values are extracted and stored into a Deephaven table. - -Once data is collected and tables are created, various [Deephaven queries](https://deephaven.io/core/docs/how-to-guides/simple-python-query/) are then performed on the tables. - -This app writes to Deephaven tables both statically and dynamically. - -## Dependencies - -* The [Deephaven-core dependencies](https://github.com/deephaven/deephaven-core#required-dependencies) are required for this project. -* If you want to use a different Prometheus instance than the default instance, you will need to [install Prometheus](https://prometheus.io/docs/prometheus/latest/installation/) at your desired location. - -## Launch - -Before launching, you can modify the `PROMETHEUS_QUERIES` and `BASE_URL` values in `prometheus.py` to see the results of different queries, and to point the application at different Prometheus instances. - -Once you are set, simply run the following to launch the app: - -``` -sh start.sh -``` - -Go to [http://localhost:10000/ide](http://localhost:10000/ide) to view the tables in the top right **Panels** tab! - -### Ngrok - - -:::note - -If you are running Prometheus locally and seeing errors like: - -``` -HTTPConnectionPool(host='localhost', port=9090): Max retries exceeded with url: /api/v1/query?query=up (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) -``` - -you may need to use [Ngrok](https://ngrok.com/) to make HTTP requests to your Prometheus instance. - -::: - -[Install Ngrok](https://ngrok.com/download) on the machine that is running your Prometheus instance, then run the following in a new terminal window on that same machine: - -``` -ngrok http 9090 -``` - -Use the URL on the terminal that forwards to to construct the `BASE_URL` value. Edit this value in `prometheus.py` and re-launch the application. For example: - -``` -BASE_URL = "{base}/api/v1/query".format(base="http://c818-2603-6081-2300-2640-50c5-4e0a-6c65-498d.ngrok.io") -``` diff --git a/Prometheus/app.d/app.app b/Prometheus/app.d/app.app deleted file mode 100644 index 4a3091d5..00000000 --- a/Prometheus/app.d/app.app +++ /dev/null @@ -1,6 +0,0 @@ -type=script -scriptType=python -enabled=true -id=prometheus -name=Prometheus application -file_0=./prometheus.py diff --git a/Prometheus/app.d/prometheus.py b/Prometheus/app.d/prometheus.py deleted file mode 100644 index 016a99d3..00000000 --- a/Prometheus/app.d/prometheus.py +++ /dev/null @@ -1,160 +0,0 @@ -""" -prometheus.py - -A simple python script that pulls data from Prometheus's API, and -stores it in a Deephaven table. - -This is expected to be run within Deephaven's application mode https://deephaven.io/core/docs/how-to-guides/app-mode/. - -After launching, there will be 2 tables within the "Panels" section of the Deephaven UI. -One will be a static table and the other will be continually updating with real data. - -@author Jake Mulford -@copyright Deephaven Data Labs LLC -""" -from deephaven.TableTools import newTable, stringCol, dateTimeCol, doubleCol -from deephaven import DynamicTableWriter -from deephaven.DateTimeUtils import millisToTime -import deephaven.Types as dht -from typing import Callable - -import requests - -import threading -import time - -PROMETHEUS_QUERIES = ["up", "go_memstats_alloc_bytes"] #Edit this and add your queries here -BASE_URL = "{base}/api/v1/query".format(base="http://prometheus:9090") #Edit this to your base URL if you're not using a local Prometheus instance - -ApplicationState = jpy.get_type("io.deephaven.appmode.ApplicationState") - -def make_prometheus_request(prometheus_query, query_url): - """ - A helper method that makes a request on the Prometheus API with the given - query, and returns a list of results containing the timestamp, job, instance, and value for the query. - The data returned by this method will be stored in a Deephaven table. - - This assumes that the query is going to return a "vector" type from the Prometheus API. - https://prometheus.io/docs/prometheus/latest/querying/api/#instant-vectors - - Args: - prometheus_query (str): The Prometheus query to execute with the API request. - query_url (str): The URL of the query endpoint. - Returns: - list[(date-time, str, str, float)]: List of the timestamps, jobs, instances, and values from the API response. - """ - results = [] - query_parameters = { - "query": prometheus_query - } - response = requests.get(query_url, params=query_parameters) - response_json = response.json() - - if "data" in response_json.keys(): - if "resultType" in response_json["data"] and response_json["data"]["resultType"] == "vector": - for result in response_json["data"]["result"]: - #Prometheus timestamps are in seconds. We multiply by 1000 to convert it to - #milliseconds, then cast to an int() to use the millisToTime() method - timestamp = millisToTime(int(result["value"][0] * 1000)) - job = result["metric"]["job"] - instance = result["metric"]["instance"] - value = float(result["value"][1]) - results.append((timestamp, job, instance, value)) - return results - -def start_dynamic(app: ApplicationState): - """ - Deephaven Application Mode method that starts the dynamic data collector. - """ - column_names = ["DateTime", "PrometheusQuery", "Job", "Instance", "Value"] - column_types = [dht.datetime, dht.string, dht.string, dht.string, dht.double] - - table_writer = DynamicTableWriter( - column_names, - column_types - ) - - result = table_writer.getTable() - - def thread_func(): - while True: - for prometheus_query in PROMETHEUS_QUERIES: - values = make_prometheus_request(prometheus_query, BASE_URL) - - for (date_time, job, instance, value) in values: - table_writer.logRow(date_time, prometheus_query, job, instance, value) - time.sleep(2) - - app.setField("result_dynamic", result) - thread = threading.Thread(target = thread_func) - thread.start() - -def start_static(app: ApplicationState, query_count=5): - """ - Deephaven Application Mode method that starts the static data collector. - - query_count sets the number of requests to make. It is recommended to keep this number low, - since it delays how long the Deephaven UI takes to become accessible. - """ - date_time_list = [] - prometheus_query_list = [] - job_list = [] - instance_list = [] - value_list = [] - - for i in range(query_count): - for prometheus_query in PROMETHEUS_QUERIES: - values = make_prometheus_request(prometheus_query, BASE_URL) - - for (date_time, job, instance, value) in values: - date_time_list.append(date_time) - prometheus_query_list.append(prometheus_query) - job_list.append(job) - instance_list.append(instance) - value_list.append(value) - time.sleep(2) - - result = newTable( - dateTimeCol("DateTime", date_time_list), - stringCol("PrometheusQuery", prometheus_query_list), - stringCol("Job", job_list), - stringCol("Instance", instance_list), - doubleCol("Value", value_list) - ) - app.setField("result_static", result) - -def update(app: ApplicationState): - """ - Deephaven Application Mode method that does various updates on the initial tables. - - You can throw any Deehaven Query in here. The ones in here are simply examples. - """ - #Get the tables from the app - result_static = app.getField("result_static").value() - result_dynamic = app.getField("result_dynamic").value() - - #Perform the desired queries, and set the results as new fields - result_static_update = result_static.by("PrometheusQuery") - app.setField("result_static_update", result_static_update) - - result_static_average = result_static.dropColumns("DateTime", "Job", "Instance").avgBy("PrometheusQuery") - app.setField("result_static_average", result_static_average) - - result_dynamic_update = result_dynamic.by("PrometheusQuery") - app.setField("result_dynamic_update", result_dynamic_update) - - result_dynamic_average = result_dynamic.dropColumns("DateTime", "Job", "Instance").avgBy("PrometheusQuery") - app.setField("result_dynamic_average", result_dynamic_average) - -def initialize(func: Callable[[ApplicationState], None]): - """ - Deephaven Application Mode initialization method. - """ - app = jpy.get_type("io.deephaven.appmode.ApplicationContext").get() - func(app) - -#Start the static and dynamic data collectors -initialize(start_static) -initialize(start_dynamic) -#Run the table updates -initialize(update) diff --git a/Prometheus/app.d/requirements.txt b/Prometheus/app.d/requirements.txt deleted file mode 100644 index 0866b439..00000000 --- a/Prometheus/app.d/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -certifi==2021.5.30 -charset-normalizer==2.0.6 -idna==3.2 -requests==2.26.0 -urllib3==1.26.7 diff --git a/Prometheus/docker-compose.yml b/Prometheus/docker-compose.yml deleted file mode 100644 index 5b5fe5d5..00000000 --- a/Prometheus/docker-compose.yml +++ /dev/null @@ -1,47 +0,0 @@ -version: "3.4" - -services: - grpc-api: - image: prometheus-deephaven/grpc-api:latest - expose: - - '8080' - volumes: - - ./data:/data - - api-cache:/cache - environment: - - JAVA_TOOL_OPTIONS=-Xmx4g -Ddeephaven.console.type=python -Ddeephaven.application.dir=/app.d - - web: - image: ghcr.io/deephaven/web:${VERSION:-latest} - expose: - - '80' - volumes: - - ./data:/data - - web-tmp:/tmp - - grpc-proxy: - image: ghcr.io/deephaven/grpc-proxy:${VERSION:-latest} - environment: - - BACKEND_ADDR=grpc-api:8080 - depends_on: - - grpc-api - expose: - - '8080' - - envoy: - image: ghcr.io/deephaven/envoy:${VERSION:-latest} - depends_on: - - web - - grpc-proxy - - grpc-api - ports: - - "10000:10000" - - prometheus: - image: prom/prometheus - ports: - - "9090:9090" - -volumes: - web-tmp: - api-cache: diff --git a/Prometheus/start.sh b/Prometheus/start.sh deleted file mode 100644 index 8e9f87ab..00000000 --- a/Prometheus/start.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker build --tag prometheus-deephaven/grpc-api . -docker-compose up diff --git a/README.md b/README.md index 914a60dc..631d6ebb 100644 --- a/README.md +++ b/README.md @@ -10,21 +10,15 @@ This repository contains open source data sets. They are intended to be used as The following folders can be found in this repository: - **[`CreditCardFraud`](./CreditCardFraud)** - Anonymized credit card purchase data, including fraudulent purchases. -- **[`CryptoCurrency`](./CryptoCurrency)** - Script to pull live and historical data for specified cryptocurencies. - **[`CryptoCurrencyHistory`](./CryptoCurrencyHistory)** - Data from [CoinGecko](https://www.coingecko.com/) to highlight use of CSV and Parquet data formats. - **[`DeNiro`](./DeNiro)** - Data on Robert De Niro's movies up to 2016. -- **[`Fit`](./Fit)** - Workout results in the proprietary fit format developed by Garmin. Downloadable from Strava. - **[`GSOD`](./GSOD)** - Global Surface Summary of the Day (GSOD) weather data. - **[`Insurance`](./Insurance)** - A dataset of insurance charges given some indicators of patient health. - **[`Iris`](./Iris)** - The iris flower data set from Ronald Fisher's 1936 paper. - **[`MetricCentury`](./MetricCentury)** - Data recorded from a 100 km bike ride. - **[`NoodlePug`](./NoodlePug)** -Bones and no-bones data for Noodle the Pug through Oct 27, 2021. - **[`Pems`](./Pems)** - Traffic flow data collected near Davis, CA. -- **[`Prometheus`](./Prometheus)** - System monitoring data from Prometheus. - **[`Taxi`](./Taxi)** - Yellow Taxi trip records. -- **[`TensorFlow`](./TensorFlow)** - Statistically calculate positive/negative sentiment using machine-learning - training mechanisms based on an RSS feed from Seeking Alpha. -- **[`TickingHeartRate`](./TickingHeartRate)** - Simulated ticking heart rate data. ## Description diff --git a/RedpandaStats/README.md b/RedpandaStats/README.md deleted file mode 100644 index 47300a37..00000000 --- a/RedpandaStats/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Redpanda and Deephaven - -[Redpanda](https://vectorized.io/) is an open-source Kafka-compatible event streaming platform. This sample app shows how to ingest Docker stats data from Redpanda into [Deephaven](https://deephaven.io/). - - -## How it works - -### Deephaven - -This app runs using Deephaven with Docker. See our [Quickstart](https://deephaven.io/core/docs/tutorials/quickstart/). - -### Components - -* `docker-compose.yml` - The Docker Compose file for the application. This is the same as the Deephaven `docker-compose` file with Redpanda described in our [Simple Kafka import](https://deephaven.io/core/docs/how-to-guides/kafka-simple/). -* `kafka-produce.py` - The Python script that pulls the data from Docker stats into streaming Kafka data onto Redpanda. - -### High level overview - -This app pulls data from the local [Docker](https://docs.docker.com/engine/reference/commandline/stats/) containers. -The data is placed into a Redpanda Kafka stream. - -Once data is collected in Kafka, Deephaven consumes the stream. - -### To run script - -In your 'RedpandaStats' directory, bring up this version of the deployment: - -```bash -docker-compose up -d -``` - -This starts the containers needed for Redpanda and Deephaven. - -To start listening to the Kafka topic `docker-stats`, navigate to [http://localhost:10000/ide](http://localhost:10000/ide/) and enter: - - -```python -from deephaven import KafkaTools as kt -from deephaven import Types as dht - -result= kt.consumeToTable({'bootstrap.servers': 'redpanda:29092'} , 'docker-stats', key=kt.IGNORE, value=kt.json([ - ('container', dht.string), - ('name', dht.string), - ('cpuPercent', dht.double), - ('memoryUsage', dht.int64), - ('memoryLimit', dht.int64), - ('memoryPercent', dht.double), - ('networkInput', dht.int64), - ('networkOutput', dht.int64), - ('blockInput', dht.int64), - ('blockOutput', dht.int64), - ('pids', dht.int32) - ]),table_type = 'append') - ``` - -The Python script uses [confluent_kafka](https://docs.confluent.io/) and you must have this installed on your machine. To install, run: - -```bash -pip install confluent_kafka -``` - -To produce the Kafka stream, execute the `kafka-produce.py` script in your terminal: - - ```bash - python3 ./kafka-produce.py - ``` diff --git a/RedpandaStats/docker-compose.yml b/RedpandaStats/docker-compose.yml deleted file mode 100644 index d843d598..00000000 --- a/RedpandaStats/docker-compose.yml +++ /dev/null @@ -1,85 +0,0 @@ -version: "3.4" - -services: - redpanda: - command: - - redpanda - - start - - --smp - - '1' - - --reserve-memory - - 0M - - --overprovisioned - - --node-id - - '0' - - --kafka-addr - - PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092 - - --advertise-kafka-addr - - PLAINTEXT://redpanda:29092,OUTSIDE://localhost:9092 - image: docker.vectorized.io/vectorized/redpanda:v21.9.5 - ports: - - 9092:9092 - - 29092:29092 - - grpc-api: - image: ghcr.io/deephaven/grpc-api:${VERSION:-latest} - environment: - JAVA_TOOL_OPTIONS: -Xmx6g -Ddeephaven.console.type=python -Ddeephaven.application.dir=/data/app.d - depends_on: - - redpanda - deploy: - resources: - limits: - cpus: '4.0' - memory: 6000M - reservations: - memory: 1000M - expose: - - '8080' - volumes: - - ./data:/data - - api-cache:/cache - - web: - image: ghcr.io/deephaven/web:${VERSION:-latest} - environment: - JAVA_TOOL_OPTIONS: -Xmx4g - expose: - - '80' - volumes: - - ./data:/data - - web-tmp:/tmp - - grpc-proxy: - image: ghcr.io/deephaven/grpc-proxy:${VERSION:-latest} - environment: - - BACKEND_ADDR=grpc-api:8080 - depends_on: - - grpc-api - expose: - - '8080' - - envoy: - image: ghcr.io/deephaven/envoy:${VERSION:-latest} - depends_on: - - web - - grpc-proxy - - grpc-api - ports: - - "${PORT:-10000}:10000" - - registry: - image: apicurio/apicurio-registry-mem:1.2.2.Final - expose: - - 8080 - ports: - - "8081:8080" - environment: - QUARKUS_PROFILE: prod - KAFKA_BOOTSTRAP_SERVERS: redpanda:9092 - APPLICATION_ID: registry_id - APPLICATION_SERVER: localhost:9000 - -volumes: - web-tmp: - api-cache: diff --git a/RedpandaStats/kafka-produce.py b/RedpandaStats/kafka-produce.py deleted file mode 100644 index b6aad890..00000000 --- a/RedpandaStats/kafka-produce.py +++ /dev/null @@ -1,75 +0,0 @@ -# Example scrupt to produce kafka messages to Deephaven from docker stats using RedPanda. -# -# To run this script, you need confluent-kafka libraries installed. -# To create a dedicated venv for it, you can do: -# -# $ mkdir confluent-kafka; cd confluent-kafka -# $ python3 -m venv confluent-kafka -# $ cd confluent-kafka -# $ source bin/activate -# $ pip3 install confluent-kafka -# -# Note: On a Mac you may need to install the librdkafka package. -# You can use "brew install librdkafka" if the pip3 command fails -# with an error like "librdkafka/rdkafka.h' file not found" -# as found at confluentinc/confluent-kafka-python#166. -# -# Run this script on the host (not on a docker image): -# $ python3 ./kafka-produce.py - - -from confluent_kafka import Producer - -import re -import json -import time -import subprocess - -topic_name = 'docker-stats' - -producer = Producer({ - 'bootstrap.servers': 'localhost:9092', -}) - -def convert_unit(input_Unit): - if input_Unit == 'GiB': return 1073741824 - if input_Unit == 'MiB': return 1048576 - if input_Unit == 'kiB': return 1024 - if input_Unit == 'GB': return 1000000000 - if input_Unit == 'MB': return 1000000 - if input_Unit == 'kB': return 1000 - else: return 1 - - -def get_raw(value_with_unit_str): - value_str = re.findall('\d*\.?\d+',value_with_unit_str)[0] - unit_str = value_with_unit_str[len(value_str):] - return int(float(value_str) * float(convert_unit(unit_str))) - - -while True: - data = subprocess.check_output("docker stats --no-stream", shell=True).decode('utf8') - - container = {} - - lines = data.splitlines() - for line in lines[1:]: - args = line.split( ) - if len(args) == 14: - container = { - "container": args[0], - "name": args[1], - "cpuPercent": re.findall('\d*\.?\d+',args[2])[0], - "memoryUsage": get_raw(args[3]), - "memoryLimit": get_raw(args[5]), - "memoryPercent": re.findall('\d*\.?\d+',args[6])[0], - "networkInput": get_raw(args[7]), - "networkOutput": get_raw(args[9]), - "blockInput": get_raw(args[10]), - "blockOutput": get_raw(args[12]), - "pids": re.findall('\d*\.?\d+',args[13])[0] - } - - producer.produce(topic=topic_name, key=None, value=json.dumps(container)) - producer.flush() - time.sleep(0.5) diff --git a/TensorFlow/README.md b/TensorFlow/README.md deleted file mode 100644 index bcdbf6f2..00000000 --- a/TensorFlow/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Tensorflow example demonstrating data from Seeking Alpha - -Pull a RSS feed from Seeking Alpha, and statistically calculate positive/negative sentiment using machine-learning -training mechanisms within [TensorFlow](https://www.tensorflow.org/). - -## Table of contents - -* `tensorflow.py` - Python script to run. -* `trainData.csv` - The input data to train the AI algorithm. - -## Steps to run - -1. Install Python modules: - `docker exec $(basename $(pwd))_grpc-api_1 pip install tensorflow tensorflow_hub sklearn spacy bs4 lxml` - Note: please use this exact install mechanism, rather than variations - from [How to install Python packages](https://deephaven.io/core/docs/how-to-guides/install-python-packages). - The lxml installation is somewhat fragile in allowing bs4 to see that it has been installed. - See for more information. -1. Install the spacy english module: - `docker exec $(basename $(pwd))_grpc-api_1 pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz` - Alternatively, use another version from here: - -1. Drag/drop the file `trainData.csv` onto the Deephaven console. -1. Get a login to (free) and subscribe to . - * Note that every time you run the script, you will consume some quota of your API usage for this particular - endpoint. This is kept minimal: a single API access of each published article being advertised by Seeking Alpha - on any one day (using the `knownLinks[]` variable within the script). However, to allow repeated iterations for - debug/troubleshooting, all variables are reset on a new script run, and hence another round of API calls is - required for each run. - * The number of API calls per day is usually small(~5-30), so provided the script is only run once-per-day, the free - tier of 500 calls/month should be adequate for demonstrative purposes. - * API call usage can be seen here: -1. Look at any of the endpoint examples, and **select+save** your unique endpoint API key. It is called `x-rapidapi-key`. -1. Import your key into Deephaven by running: - `ra_sa_key='enter-your-key-here'` (avoiding any additional space/quote characters) -1. Run `tensorflow.py`. diff --git a/TensorFlow/tensorflow.py b/TensorFlow/tensorflow.py deleted file mode 100644 index 86ffc060..00000000 --- a/TensorFlow/tensorflow.py +++ /dev/null @@ -1,362 +0,0 @@ -import tensorflow as tf -from tensorflow import keras -import tensorflow_hub as hub -import numpy as np -import pandas as pd -from sklearn.utils import shuffle -from sklearn.feature_extraction.text import TfidfVectorizer -from sklearn.neighbors import NearestCentroid -from sklearn.naive_bayes import BernoulliNB, MultinomialNB -import string -import re -import spacy -import json -import deephaven.npy as inp -from deephaven.java_to_python import columnToNumpyArray -from deephaven import DynamicTableWriter, Types as dht -from deephaven.TableTools import timeTable - -# Load training data to use: -if not "trainData" in globals(): - print("Data not available: please load trainData.csv") - -# Ensure credientials are setup to log in to seekingAlpha -if not "ra_sa_key" in globals(): - print("Please set Rapid Api key for Seeking Alpha (ra_sa_key='the-key'):") - - -def cleanText(text): - # to lowercase - text = text.lower() - # correct spaces (e.g. "End sentence.Begin another" becomes "End sentence. Begin another") - text = re.sub(r'\.([a-zA-Z])', r'. \1', text) - text = re.sub(r'\?([a-zA-Z])', r'. \1', text) - text = re.sub(r'\!([a-zA-Z])', r'. \1', text) - # replace q1,2,3,4 with q - text = re.sub("q[1-4]", "q", text) - # replace 20xx with 2000 - text = re.sub("20[0-2][0-9]", "2000", text) - # lemmatize and remove stop words and punctuation - nlp = spacy.load('en_core_web_sm') - doc = nlp(text) - lemmatizedText = "" - for token in doc: - if not token.is_stop and not token.is_punct: - lemma = token.lemma_ - if lemma == "-PRON-": - lemma = "it" - lemmatizedText += (lemma + " ") - text = lemmatizedText - return text - - -def shuffleTable(unshuffledTable): - return unshuffledTable.update("__r=Math.random()").sort("__r").dropColumns("__r") - - -def centroid(trainTextVectorized, trainLabels, testTextVectorized): - nc = NearestCentroid(metric='manhattan') - nc.fit(trainTextVectorized, trainLabels) - return nc.predict(testTextVectorized) - - -def naiveBayes(trainTextVectorized, trainLabels, testTextVectorized): - nb = BernoulliNB(alpha=1) - nb.fit(trainTextVectorized, trainLabels) - return nb.predict(testTextVectorized) - - -def preTrainedEmbedding(trainText, trainLabels, evalText, valSize, trainEmb=True): - # initialize training, validation, and testing data - valText = trainText[-1 * valSize:] - valLabels = trainLabels[-1 * valSize:] - trainText = trainText[:-1 * valSize] - trainLabels = trainLabels[:-1 * valSize] - # create and run model - hub_layer = hub.KerasLayer("https://tfhub.dev/google/tf2-preview/gnews-swivel-20dim-with-oov/1", output_shape=[20], - input_shape=[], dtype=tf.string, trainable=trainEmb) - model = keras.Sequential(name="mymodel") - model.add(hub_layer) - model.add(keras.layers.Dense(16, activation='relu')) - model.add(keras.layers.Dense(1, activation='sigmoid')) - model.compile(optimizer='adam', - loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), - metrics=['accuracy']) - history = model.fit(trainText, - trainLabels, - epochs=40, - batch_size=4, - validation_data=(valText, valLabels), - verbose=0) - model.predict(evalText, verbose=1) - - -def predict(text, model): - if model == 'c' or model == 'nb': - textVectorized = vectorizer.transform([text]) - if model == 'c': - return int(centroid(trainTextVectorized, trainLabels, textVectorized)[0]) - else: - return int(naiveBayes(trainTextVectorized, trainLabels, textVectorized)[0]) - elif model == 'e': - return int(preTrainedEmbedding(trainText, trainLabels, text, 10)) - - -from bs4 import BeautifulSoup -import requests -import re -import pandas as pd -from deephaven.TableTools import emptyTable -from deephaven.conversion_utils import convertToJavaArray - - -# gets only those xml items which represent earnings call transcripts -def getEarningsCalls(items): - return [item for item in items if item.title.text.split()[-3:] == ["Earnings", "Call", "Transcript"]] - - -# gets the symbol and quarter/year out of an article's header -def parseHeader(header): - leftParenIdx = header.rindex("(") - rightParenIdx = header.rindex(")") - symbol = header[leftParenIdx + 1:rightParenIdx] - quarterIdx = re.search("Q[1-4] 20[0-2][0-9]", header).start() - quarter = header[quarterIdx:quarterIdx + 7] - return (symbol, quarter) - - -# find the index of the first paragraph that is equal to an item from the search list -# necessary for some functions below -def findIdx(paragraphs, searchList): - idx = 0 - for paragraph in paragraphs: - for title in searchList: - if (title == paragraph.text.lower()): - return idx - idx += 1 - return idx - - -# gets the names of all the company participants on the call -# this is useful in other functions below -def getNames(paragraphs): - # find the indices of the company participants and conference call participants roll-call sections - companyList = ["company participants", "corporate participants", "executives", "company representatives"] - confList = ["conference call participants", "analysts"] - startIdx = findIdx(paragraphs, companyList) - endIdx = findIdx(paragraphs, confList) - - # record the name of each company participant - idx = startIdx + 1 - names = [] - while idx < endIdx: - paragraph = paragraphs[idx] - text = paragraph.text.split() - if len(text) < 2: - break - names.append(text[0] + " " + text[1]) - idx += 1 - return names - - -# removes the roll-call, operator announcement, and q&a sections of the call -def truncate(paragraphs, names): - # find the indices of the operator and q&a sections - operatorIdx = qaIdx = 0 - for paragraph in paragraphs: - if paragraph.text.lower()[:len("operator")] == "operator": - break - operatorIdx += 1 - for paragraph in paragraphs: - if "id" in paragraph.attrs.keys() and paragraph["id"].lower()[:len("question-answer-session")] == "question-answer-session": - break - qaIdx += 1 - - # if there is an operator section, get the section between it and the q&a - if operatorIdx < qaIdx: - paragraphs = paragraphs[operatorIdx + 1:qaIdx - 1] - # if there isn't an operator section, remove the company participant roll-call - # this is necessary for the next step - else: - confList = ["conference call participants", "analysts"] - confIdx = findIdx(paragraphs, confList) - paragraphs = paragraphs[confIdx:qaIdx - 1] - - # find the index of the first company participant's speaking section - # this represents the start of either the safe-harbor statement or the CEO presentation - nameIdx = 0 - for paragraph in paragraphs: - text = paragraph.text.split() - if len(text) < 2: - break - name = text[0] + " " + text[1] - if name in names: - break - nameIdx += 1 - - # remove everything before the first company participant's speaking section - # print("op:%d\nqa:%d\nname:%d" % (operatorIdx, qaIdx, nameIdx)) - return paragraphs[nameIdx:] - - -# check if the call has a safe-harbor section -def hasSafeHarborStatement(paragraphs): - phrases = ["10-K", "forward-looking statements", "forward-looking information", "non-GAAP"] - for paragraph in paragraphs: - for phrase in phrases: - if phrase in paragraph.text: - return True - return False - - -# remove the call's safe-harbor section with the assumption that it exists -def removeSafeHarborStatement(paragraphs, names): - # find the indices of the first two company participant speaking sections - # the first company speaker always says the safe-harbor statement, so his/her section must be removed - i = startIdx = endIdx = 0 - first = True - for paragraph in paragraphs: - text = paragraph.text.split() - if text[0].lower() == "presentation": - i += 1 - continue - name = text[0] + " " + text[1] - if name in names: - if first: - # this is the first speaker's index - startIdx = i - first = False - else: - # this is the second speaker's index - endIdx = i - break - i += 1 - - # remove the section between the two indices, i.e. the first speaker's section - return paragraphs[:startIdx] + paragraphs[endIdx + 1:] - - -# removes all company participant names/paragraphs, as each name has its own paragraph in the call -def removeNames(paragraphs, names): - return [paragraph for paragraph in paragraphs if not paragraph.text in names] - - -# convert a list of paragraphs into a single text string -def collate(paragraphs): - s = "" - for paragraph in paragraphs: - s += paragraph.text - return s - - -def getArticle(articleId): - url = "https://seeking-alpha.p.rapidapi.com/articles/get-details" - - querystring = {"id": articleId} - - headers = { - 'x-rapidapi-host': "seeking-alpha.p.rapidapi.com", - 'x-rapidapi-key': ra_sa_key - } - - response = requests.request("GET", url, headers=headers, params=querystring) - return response - - -def runRSS(): - # get the rss feed - feed = requests.get("https://seekingalpha.com/sector/transcripts.xml").text - soup = BeautifulSoup(feed, "xml") - items = soup.find_all("item") - items = getEarningsCalls(items) - links = [item.link.text for item in items] - - # these store the data for articles where access is granted - texts = [] - timestamps = [] - symbols = [] - quarters = [] - for link in links[:1]: - linkId = link[link.index('/article/') + len('/article/'): link.index('-')] - - # Note: every tick, the API request will be re-sent, either consuming quota - # fast, or racking up bills fast. Skipping already seen links minimizes API - # usage to only new articles. - if linkId in knownLinks: - # print("Skipping lookup - already included: " + link) - continue - else: - knownLinks.append(linkId) - - # get the transcript article - source = json.loads(getArticle(linkId).text) - - try: - # find the header, timestamp, and paragraphs of the article - article = source["data"]["attributes"]["content"] - header = source["data"]["attributes"]["title"] - timestamp = source["data"]["attributes"]["publishOn"] - paragraphs = BeautifulSoup(article, "lxml").find_all("p") - - # get symbol and quarter from the header - symbol, quarter = parseHeader(header) - - # clean and collate the paragraphs - names = getNames(paragraphs) - paragraphs = truncate(paragraphs, names) - if hasSafeHarborStatement(paragraphs): - paragraphs = removeSafeHarborStatement(paragraphs, names) - paragraphs = removeNames(paragraphs, names) - text = collate(paragraphs) - - # store collected data - texts.append(text) - timestamps.append(timestamp) - symbols.append(symbol) - quarters.append(quarter) - except: - # either bad article or access denied - print("Warning: article skipped due to bad formatting or access denied.") - pass - - if len(texts) == 0: - return False - - # Known bug: https://github.com/deephaven/deephaven-core/issues/1309 - try: - symCol = columnToNumpyArray(calls, "Sym") - except: - symCol = [] - try: - quarterCol = columnToNumpyArray(calls, "Quarter") - except: - quarterCol = [] - containsNewCall = False - for i in range(len(texts)): - if symbols[i] not in symCol and quarters[i] not in quarterCol: - containsNewCall = True - tw.logRow(texts[i], timestamps[i], symbols[i], quarters[i]) - return containsNewCall - - -trainData = shuffleTable(trainData) -trainText = columnToNumpyArray(trainData, "Text") -trainLabels = inp.numpy_slice(trainData.view("Label"), 0, trainData.size(), dtype=np.int32) -trainLabels = np.reshape(trainLabels, -1) -vectorizer = TfidfVectorizer(max_features=1000, ngram_range=(1, 1), norm='l1') -trainTextVectorized = vectorizer.fit_transform(trainText) - -knownLinks = [] -cols = ["Text", "RSSTimestamp", "Sym", "Quarter"] -types = [dht.string, dht.string, dht.string, dht.string] -tw = DynamicTableWriter(cols, types) -twt = tw.getTable() -calls = twt \ - .firstBy("Sym", "Quarter") \ - .update("Text = (String)cleanText.call(Text)", "PredictedLabel = (int)predict.call(Text, `c`)", "PredictedLabel = PredictedLabel==0 ? -1 : PredictedLabel") \ - .moveUpColumns("Sym", "Quarter", "RSSTimestamp", "PredictedLabel") - -tt = timeTable("'00:01:00'") \ - .sortDescending("Timestamp") \ - .update("ContainedNewCalls=(boolean)runRSS.call()") -callsSummary = calls.view("Sym", "Date=convertDate(RSSTimestamp.substring(0,10))", "PredictedLabel") diff --git a/TensorFlow/trainData.csv b/TensorFlow/trainData.csv deleted file mode 100755 index e2bf05ff..00000000 --- a/TensorFlow/trainData.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17661d1736102715c1889a42c3f6eb64d67fcda9cc1abf9bb01030c0d52cfe42 -size 606167 diff --git a/TickingHeartRate/README.md b/TickingHeartRate/README.md deleted file mode 100644 index 34e86216..00000000 --- a/TickingHeartRate/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# Ticking Heart Rate in Deephaven - -Self-contained example code and data to simulate a live feed of heart rate data being entered. - -## Table of contents - - * `csv` - the data used to run this example - * `runTickingHeartRateReplay.py` - python script to demonstrate fit data inside deephaven - * `*.png` - images used in this help - -## Steps to run - -1. Copy the `csv` directory into the data folder underneath your Docker starting location. See our [Quick start](https://deephaven.io/core/docs/tutorials/quickstart/#manage-the-deephaven-deployment) for detailed instructions. -1. Run the `runTickingHeartRateReplay.py` file in a Deephaven console. -1. The table `heartRateData` should appear. See: [Note regarding ticking](#note-regarding-ticking). - - ![Heart rate table starting](heartRateTableStart.png "Heart rate chart") - -The table should continue to tick new rows as each `.csv` file is processed. -1. Click the **Table Options** menu in the `heartRateData` tab. -1. Select **Chart Builder**. -1. Select defaults:`Line`, `X-Axis=Timestamp`, `Series=Heart Rate` -1. Select **Create**. (You may need to scroll to see the button.) -1. A chart should appear: - - ![Heart rate chart started](heartRateChartStart.png "Heart rate chart started") - -The chart should also continue to tick, adding more data points to the graph over time and dynamically resizing. - - ![Heart rate chart ticking](heartRateChartMiddle.png "Heart rate chart") - -The chart will stop ticking when either no more data is added, or the script exit criteria is reached. - - ![Heart rate chart complete](heartRateChartEnd.png "Heart rate chart complete") - -## Note regarding ticking - -The ticking functionality requires threading to be in place as implemented in the code example. - -Without threading, ticking will not happen, and the entire table will be processed in a single batch at the end. - -More background detail is supplied here in our guide, [Write data to a real-time table](https://deephaven.io/core/docs/reference/table-operations/create/DynamicTableWriter) - -## Advanced challenge - -Provided there is a way to stream `.csv` files into the Docker container from the original source, it is possible to watch heart rate monitor data in real-time (however, there may be delays depending on the speed of data transfer protocols). - -Since there is a diverse array of devices and communication strategies between those devices, we do not recommended a specific setup here on how to achieve this goal. - -For this exercise, the following were used: - -- a Scosche Rhythm24 heart rate monitor. -- an Android phone with USB tethering for file sharing (alternatively, syncing software could be used). -- the Strava android app for a clear screen reading of approximately once per-second heart rate readouts. -- the Tasker android app to screen scrape the screen and write a new `.csv` file approximately once per second. - -# Source and License - -This data was contributed to the public domain by the author. It is provided here for demonstrative purposes without any warranty for fitness of purpose or usability. diff --git a/TickingHeartRate/csv/1.csv b/TickingHeartRate/csv/1.csv deleted file mode 100755 index ad1443de..00000000 --- a/TickingHeartRate/csv/1.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee35d2780b370dec6b4f9afcd08c683b928ab99e2a9e67bfc5dcf8a5d0c804af -size 18 diff --git a/TickingHeartRate/csv/10.csv b/TickingHeartRate/csv/10.csv deleted file mode 100755 index a15b8477..00000000 --- a/TickingHeartRate/csv/10.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:296270e0b83128021a0c595562e57e32cfa5265894963a6cf34e1f55e59046ef -size 18 diff --git a/TickingHeartRate/csv/100.csv b/TickingHeartRate/csv/100.csv deleted file mode 100755 index a7d4723a..00000000 --- a/TickingHeartRate/csv/100.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f31c23729af328b72ac3e394e6fc040f84d7b20c8d38d625cff6858b412cdcf -size 19 diff --git a/TickingHeartRate/csv/101.csv b/TickingHeartRate/csv/101.csv deleted file mode 100755 index 7683c826..00000000 --- a/TickingHeartRate/csv/101.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:125b386d3998928cd0529ab7abb8b749e203e39188f295cb5b91b715e7e81742 -size 19 diff --git a/TickingHeartRate/csv/102.csv b/TickingHeartRate/csv/102.csv deleted file mode 100755 index dab5a069..00000000 --- a/TickingHeartRate/csv/102.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8bb56ecdaf9b75a085b6bd9fa3ef8f91b5d9055dec0c9e815975cd0869a5e51 -size 19 diff --git a/TickingHeartRate/csv/103.csv b/TickingHeartRate/csv/103.csv deleted file mode 100755 index 488407f6..00000000 --- a/TickingHeartRate/csv/103.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2f15e2a5b9aefa03b482c5a151466520e095039a267f1cb8e40747b7503f43b3 -size 19 diff --git a/TickingHeartRate/csv/104.csv b/TickingHeartRate/csv/104.csv deleted file mode 100755 index 3b8ad28b..00000000 --- a/TickingHeartRate/csv/104.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4b4e8b118ea7022da96f34b0f91a099f89ebeae14c82fe5865d0ca6ff2bb9fd -size 19 diff --git a/TickingHeartRate/csv/105.csv b/TickingHeartRate/csv/105.csv deleted file mode 100755 index d1d2037d..00000000 --- a/TickingHeartRate/csv/105.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f01db1aad64ef5e9eb87a738c43a6f3c48b430a5171279e05549865aecd4ee66 -size 19 diff --git a/TickingHeartRate/csv/106.csv b/TickingHeartRate/csv/106.csv deleted file mode 100755 index d00dea70..00000000 --- a/TickingHeartRate/csv/106.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8209c1a085a2791c3cd6628922f9c9f9bd6c254931afef30df2d9095aa856dc8 -size 19 diff --git a/TickingHeartRate/csv/107.csv b/TickingHeartRate/csv/107.csv deleted file mode 100755 index 9be926be..00000000 --- a/TickingHeartRate/csv/107.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cea0891e1408f973b36ffbdf6a989e1d0f63df6ff29334799c38b94a2eaad76b -size 19 diff --git a/TickingHeartRate/csv/108.csv b/TickingHeartRate/csv/108.csv deleted file mode 100755 index 37228f49..00000000 --- a/TickingHeartRate/csv/108.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3fed6ee4458c9bf020253a4146501c38ac6e11734a830c7ed3f27234f0136169 -size 19 diff --git a/TickingHeartRate/csv/109.csv b/TickingHeartRate/csv/109.csv deleted file mode 100755 index 50898e8b..00000000 --- a/TickingHeartRate/csv/109.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34df9889f4bb8c6b50d8032e5ae84b6db0cd971e6a6531d46a761026005dc855 -size 19 diff --git a/TickingHeartRate/csv/11.csv b/TickingHeartRate/csv/11.csv deleted file mode 100755 index 910ad43f..00000000 --- a/TickingHeartRate/csv/11.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a78c4c8c6081e88bc69154830520d4184d4572a466222602d6296c8d65b64b9 -size 18 diff --git a/TickingHeartRate/csv/110.csv b/TickingHeartRate/csv/110.csv deleted file mode 100755 index 18843087..00000000 --- a/TickingHeartRate/csv/110.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c70a8388cec5fc5f8a1ec2453d81509cf7b91324b96e00479e3d58c467663923 -size 19 diff --git a/TickingHeartRate/csv/111.csv b/TickingHeartRate/csv/111.csv deleted file mode 100755 index 4aa39c3c..00000000 --- a/TickingHeartRate/csv/111.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7131be5dc882ae0b0a9c08fd9d3e6d8fe17788fa2253cdd7d982563b58615dd -size 19 diff --git a/TickingHeartRate/csv/112.csv b/TickingHeartRate/csv/112.csv deleted file mode 100755 index dc6979fe..00000000 --- a/TickingHeartRate/csv/112.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83714881569901d92f3b717d7785cd395527d50939888e4dc73e1821143d983f -size 19 diff --git a/TickingHeartRate/csv/113.csv b/TickingHeartRate/csv/113.csv deleted file mode 100755 index 526afa8e..00000000 --- a/TickingHeartRate/csv/113.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0bb464b1d166dde961c127339a85c8dae5bea6412e38c465bf7be7e14de097ea -size 19 diff --git a/TickingHeartRate/csv/114.csv b/TickingHeartRate/csv/114.csv deleted file mode 100755 index 6b178914..00000000 --- a/TickingHeartRate/csv/114.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43f7313d45d6357294178e405809e3f7f1f2ae7919ee8a3c29aac76cbb4fe251 -size 19 diff --git a/TickingHeartRate/csv/115.csv b/TickingHeartRate/csv/115.csv deleted file mode 100755 index d3b39ad9..00000000 --- a/TickingHeartRate/csv/115.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2240c63ea16a2541f0a183eb41438a8d1b4aab8c64e5bf8682351e246d70c17e -size 19 diff --git a/TickingHeartRate/csv/116.csv b/TickingHeartRate/csv/116.csv deleted file mode 100755 index 965f7513..00000000 --- a/TickingHeartRate/csv/116.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb6ba124330827e3b3f2b7463bd8adf25529585225d75155764dd6b88cddec75 -size 19 diff --git a/TickingHeartRate/csv/117.csv b/TickingHeartRate/csv/117.csv deleted file mode 100755 index d4b9bc9d..00000000 --- a/TickingHeartRate/csv/117.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f8a27e4d80b9b28f55cc7e85e666956f9b002c609181f5fe3a5ec36c4bf2099 -size 19 diff --git a/TickingHeartRate/csv/118.csv b/TickingHeartRate/csv/118.csv deleted file mode 100755 index 0aa8e97b..00000000 --- a/TickingHeartRate/csv/118.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:abb0e02570b23d78af83361d2dff5ae3da93edb4f4fb3743e75ca27e13c3bcb8 -size 19 diff --git a/TickingHeartRate/csv/119.csv b/TickingHeartRate/csv/119.csv deleted file mode 100755 index 20f4b411..00000000 --- a/TickingHeartRate/csv/119.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3699573aac7aaffa31188cec787d8b5004fc409377f9768dd6125bafaae77118 -size 19 diff --git a/TickingHeartRate/csv/12.csv b/TickingHeartRate/csv/12.csv deleted file mode 100755 index 6254c9dc..00000000 --- a/TickingHeartRate/csv/12.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0868bcf5b7b9f688876162fff8a70e34e066b0785282a3b18ee2028bda0cb7a3 -size 18 diff --git a/TickingHeartRate/csv/120.csv b/TickingHeartRate/csv/120.csv deleted file mode 100755 index 35970f77..00000000 --- a/TickingHeartRate/csv/120.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9dbd5a33b88e0d1fc41e548256163cbe59cfde2294f64c5909c0c42db70a09c1 -size 19 diff --git a/TickingHeartRate/csv/121.csv b/TickingHeartRate/csv/121.csv deleted file mode 100755 index 6f60d686..00000000 --- a/TickingHeartRate/csv/121.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1357cdb68adebc3e00073ceeb65e2c0beb055e0ace80f5fc831fb4f548ae5d55 -size 19 diff --git a/TickingHeartRate/csv/122.csv b/TickingHeartRate/csv/122.csv deleted file mode 100755 index 9e156208..00000000 --- a/TickingHeartRate/csv/122.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a2810c4ce502581dce34dff50a4d0f6c5559743aef7def5601865052a1294c15 -size 19 diff --git a/TickingHeartRate/csv/123.csv b/TickingHeartRate/csv/123.csv deleted file mode 100755 index 50ea2f64..00000000 --- a/TickingHeartRate/csv/123.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5ee9942eabf9d8416f2d05f9b1541e921987e6325b1847d1bc9e73f6ec8c876 -size 19 diff --git a/TickingHeartRate/csv/124.csv b/TickingHeartRate/csv/124.csv deleted file mode 100755 index d8a8eccf..00000000 --- a/TickingHeartRate/csv/124.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c249582ee09d94518367236d5613582aff559938c06b76604d51c668f83d4329 -size 19 diff --git a/TickingHeartRate/csv/125.csv b/TickingHeartRate/csv/125.csv deleted file mode 100755 index eed2ceca..00000000 --- a/TickingHeartRate/csv/125.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b15c38e4db3a0168becf39a0cef40723f44726b56e0bd48be3e058c08021547d -size 19 diff --git a/TickingHeartRate/csv/126.csv b/TickingHeartRate/csv/126.csv deleted file mode 100755 index e4470ce4..00000000 --- a/TickingHeartRate/csv/126.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0711070f06db9909dbcf39d09358808fd1ec7955e1025cb3d21222914907749e -size 19 diff --git a/TickingHeartRate/csv/127.csv b/TickingHeartRate/csv/127.csv deleted file mode 100755 index 30ef3ad5..00000000 --- a/TickingHeartRate/csv/127.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44e0b63cbb90ff7646cc3a066b4b01f9136604e50fa8540411c87b2449f7fed5 -size 19 diff --git a/TickingHeartRate/csv/128.csv b/TickingHeartRate/csv/128.csv deleted file mode 100755 index 8a8aec77..00000000 --- a/TickingHeartRate/csv/128.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34d4e6a615cb9007b1e4989d0c6a8877a39580a45aadc5e2a5774d44bf61c62a -size 19 diff --git a/TickingHeartRate/csv/129.csv b/TickingHeartRate/csv/129.csv deleted file mode 100755 index 84d0a2f8..00000000 --- a/TickingHeartRate/csv/129.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8da128b704de290b5858acdaf97e447659e6ceb7f41d37ccf958798e25c95606 -size 19 diff --git a/TickingHeartRate/csv/13.csv b/TickingHeartRate/csv/13.csv deleted file mode 100755 index caf9bd09..00000000 --- a/TickingHeartRate/csv/13.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2235fabb8cb2bc28fd528900ac08179e120d383bd5b27223e39af20795a8489d -size 18 diff --git a/TickingHeartRate/csv/130.csv b/TickingHeartRate/csv/130.csv deleted file mode 100755 index da384a08..00000000 --- a/TickingHeartRate/csv/130.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1bf87e79eaea21c7cd329deba2317db3f3df0dbb4c1675a1be5df137ad18c9ce -size 19 diff --git a/TickingHeartRate/csv/131.csv b/TickingHeartRate/csv/131.csv deleted file mode 100755 index 71b7460e..00000000 --- a/TickingHeartRate/csv/131.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d3fe356fcb46801322b6e333ab58b730bffab30a5b3ef50d150f3a43813771a -size 19 diff --git a/TickingHeartRate/csv/132.csv b/TickingHeartRate/csv/132.csv deleted file mode 100755 index 730dffce..00000000 --- a/TickingHeartRate/csv/132.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32f4c3ea01409d59f1eca67cbaf5fe3c9eac82c4383d9dd2974a2fcbc85aa5dd -size 19 diff --git a/TickingHeartRate/csv/133.csv b/TickingHeartRate/csv/133.csv deleted file mode 100755 index a1a50aed..00000000 --- a/TickingHeartRate/csv/133.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:89e7a045c852722112451c58cced92853234c3a27f193db52a6de990c8568c78 -size 19 diff --git a/TickingHeartRate/csv/134.csv b/TickingHeartRate/csv/134.csv deleted file mode 100755 index cb0623c2..00000000 --- a/TickingHeartRate/csv/134.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16f10d00134fcd203d7ae986ca3f051b46b6c73a63c53efdbd055737bac9e05a -size 19 diff --git a/TickingHeartRate/csv/135.csv b/TickingHeartRate/csv/135.csv deleted file mode 100755 index 1684ab5d..00000000 --- a/TickingHeartRate/csv/135.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7545cd5a092b2bd7916b55c5df6247c2f046573059492bec3da0944a1ec2818b -size 19 diff --git a/TickingHeartRate/csv/136.csv b/TickingHeartRate/csv/136.csv deleted file mode 100755 index bbcb47aa..00000000 --- a/TickingHeartRate/csv/136.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9935a82cf7b9b91723e7207bde599d912e7310ffdb318b1b4455027c233a620a -size 19 diff --git a/TickingHeartRate/csv/137.csv b/TickingHeartRate/csv/137.csv deleted file mode 100755 index bdab8a2f..00000000 --- a/TickingHeartRate/csv/137.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:680aae8228a1615c7c068092a57d8de1e98939df52503df4eb1d57fd39521eca -size 19 diff --git a/TickingHeartRate/csv/138.csv b/TickingHeartRate/csv/138.csv deleted file mode 100755 index bbd6c9e3..00000000 --- a/TickingHeartRate/csv/138.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:09ce5fc3553aea3eb6e77bba3849c6460ca4c2e3140215dc5552dd900cf49e96 -size 19 diff --git a/TickingHeartRate/csv/139.csv b/TickingHeartRate/csv/139.csv deleted file mode 100755 index 641dce2a..00000000 --- a/TickingHeartRate/csv/139.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c081e6b03613e6fb1329251aaea720c99899dc79b060d77e6bad40c703078297 -size 19 diff --git a/TickingHeartRate/csv/14.csv b/TickingHeartRate/csv/14.csv deleted file mode 100755 index 00b14773..00000000 --- a/TickingHeartRate/csv/14.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56d0012738ce61c9e586d0851ca627b7d8044fc0ecfe274929a436adbbdec254 -size 18 diff --git a/TickingHeartRate/csv/140.csv b/TickingHeartRate/csv/140.csv deleted file mode 100755 index 3f8da669..00000000 --- a/TickingHeartRate/csv/140.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7db7c98a834464cf049d56ec76f7f26c0ace90d5b2a3c3f6ec4622eb13f5785c -size 19 diff --git a/TickingHeartRate/csv/141.csv b/TickingHeartRate/csv/141.csv deleted file mode 100755 index 30dadc7e..00000000 --- a/TickingHeartRate/csv/141.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30c512530aa0d876a3f58ff8a056805c4bf2cfb0d1ac676fc9ac5cc9bd0e408a -size 19 diff --git a/TickingHeartRate/csv/142.csv b/TickingHeartRate/csv/142.csv deleted file mode 100755 index 83e32f00..00000000 --- a/TickingHeartRate/csv/142.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b129d0dd7d6f6810cc85b0b4a17121a6d8a70739871b9212b480c75939c3d29 -size 19 diff --git a/TickingHeartRate/csv/143.csv b/TickingHeartRate/csv/143.csv deleted file mode 100755 index 9a5aae31..00000000 --- a/TickingHeartRate/csv/143.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:273c46721a2f5ec28d5d4fb1898f80ec29c15d599f2b5fac759de28eabc4e33c -size 19 diff --git a/TickingHeartRate/csv/144.csv b/TickingHeartRate/csv/144.csv deleted file mode 100755 index 2f23e17b..00000000 --- a/TickingHeartRate/csv/144.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:828c63edbc6932da98a8141dc2c471bdb91c8fb2f905c1bd8674c323def7331d -size 19 diff --git a/TickingHeartRate/csv/145.csv b/TickingHeartRate/csv/145.csv deleted file mode 100755 index bc7b48c1..00000000 --- a/TickingHeartRate/csv/145.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a785c9030c348bbc5b3e8d8cbd5d7ae700696ddb74b5762cba301516c3edef9 -size 19 diff --git a/TickingHeartRate/csv/146.csv b/TickingHeartRate/csv/146.csv deleted file mode 100755 index 182e23a4..00000000 --- a/TickingHeartRate/csv/146.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ee04e26d5e8fdb902facbe86f5f907039ae6defb140c4fc13e3c7556baf2434 -size 19 diff --git a/TickingHeartRate/csv/147.csv b/TickingHeartRate/csv/147.csv deleted file mode 100755 index e20a2851..00000000 --- a/TickingHeartRate/csv/147.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebf9adde01d0adaebdece7958e657d4fc6d5f86eb92ffbe20023b0fee4863c10 -size 19 diff --git a/TickingHeartRate/csv/148.csv b/TickingHeartRate/csv/148.csv deleted file mode 100755 index 5228eaad..00000000 --- a/TickingHeartRate/csv/148.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65f33dcf54ed1016df85b7ff22c69a5c600bdf5011724e19de4327d1d9059665 -size 19 diff --git a/TickingHeartRate/csv/149.csv b/TickingHeartRate/csv/149.csv deleted file mode 100755 index 6ef87afc..00000000 --- a/TickingHeartRate/csv/149.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:913d53922fed1a8b58961b989ad6fdd82e217e5d87ca985cbb13af1693626381 -size 19 diff --git a/TickingHeartRate/csv/15.csv b/TickingHeartRate/csv/15.csv deleted file mode 100755 index e6c9f78c..00000000 --- a/TickingHeartRate/csv/15.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac25cd22a943fcf3c910ee663dcaf46ee6cc7f5b453f49673ea65f1ab5c1e2a6 -size 18 diff --git a/TickingHeartRate/csv/150.csv b/TickingHeartRate/csv/150.csv deleted file mode 100755 index 91c1d4a7..00000000 --- a/TickingHeartRate/csv/150.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1a56fba72e976b1b2ab33daeac00f9b240aecf5b7635ca66a2e5bfb42ce8ddc8 -size 19 diff --git a/TickingHeartRate/csv/151.csv b/TickingHeartRate/csv/151.csv deleted file mode 100755 index eecebd16..00000000 --- a/TickingHeartRate/csv/151.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d929c2fba0f5fe89fefbd8c920f152613271785aa8a13528fab34f3405cb572a -size 19 diff --git a/TickingHeartRate/csv/152.csv b/TickingHeartRate/csv/152.csv deleted file mode 100755 index 87c9d9cb..00000000 --- a/TickingHeartRate/csv/152.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c1f67a4b2d248671839095e69e5623e57fd03c1e3a9067ecefba2c4740d477f -size 19 diff --git a/TickingHeartRate/csv/153.csv b/TickingHeartRate/csv/153.csv deleted file mode 100755 index 8d9bf9d4..00000000 --- a/TickingHeartRate/csv/153.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8d7e355774b06552e35887b3943be1b70224191ff0b9414c02f4b9f9593a545a -size 19 diff --git a/TickingHeartRate/csv/154.csv b/TickingHeartRate/csv/154.csv deleted file mode 100755 index d2069353..00000000 --- a/TickingHeartRate/csv/154.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b61eb671a664fec4b92ace9c108920bf4a09735ae3e8d3999e6e81e5361d20e1 -size 19 diff --git a/TickingHeartRate/csv/155.csv b/TickingHeartRate/csv/155.csv deleted file mode 100755 index cc1b6963..00000000 --- a/TickingHeartRate/csv/155.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4773b35f0afb9a45e592af3544917af5bc37165f10d93e02e58cb439795525ce -size 19 diff --git a/TickingHeartRate/csv/156.csv b/TickingHeartRate/csv/156.csv deleted file mode 100755 index 8491f7f9..00000000 --- a/TickingHeartRate/csv/156.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4175003f6fe49f91339e8b9b6ae38dff34556fbadf6ee0aa7d6dc9978e6bdddd -size 19 diff --git a/TickingHeartRate/csv/157.csv b/TickingHeartRate/csv/157.csv deleted file mode 100755 index 49eab18b..00000000 --- a/TickingHeartRate/csv/157.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cb82671fc041b39ab6e5f469ab875ed065e5f7f533f63fc3588c9d0e7d1fbae2 -size 19 diff --git a/TickingHeartRate/csv/158.csv b/TickingHeartRate/csv/158.csv deleted file mode 100755 index fd6777c1..00000000 --- a/TickingHeartRate/csv/158.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3e9004989a43cbd2254f28d27b045eb410ea987f46c99a25877802661c829635 -size 19 diff --git a/TickingHeartRate/csv/159.csv b/TickingHeartRate/csv/159.csv deleted file mode 100755 index e600f88e..00000000 --- a/TickingHeartRate/csv/159.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b263016153617f4b4ad4f73136efe6fe44a37de1694e2ec664c708ae187bb1f -size 19 diff --git a/TickingHeartRate/csv/16.csv b/TickingHeartRate/csv/16.csv deleted file mode 100755 index 06fb76c8..00000000 --- a/TickingHeartRate/csv/16.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90c3881a517b446d4114b3c5f6c0b4f2eb3d439ea6ce9971ecef38f3448a9406 -size 18 diff --git a/TickingHeartRate/csv/160.csv b/TickingHeartRate/csv/160.csv deleted file mode 100755 index b6d01326..00000000 --- a/TickingHeartRate/csv/160.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6b170fbeafe824b884ab8cb65274f36c095e667e4bbb86f078f57a69a8fec28 -size 19 diff --git a/TickingHeartRate/csv/161.csv b/TickingHeartRate/csv/161.csv deleted file mode 100755 index 779e16f0..00000000 --- a/TickingHeartRate/csv/161.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:597bbd870e9a8fc940cbf3518083d4ed01b3f1ad7a3519dc1886a51a6fee6954 -size 19 diff --git a/TickingHeartRate/csv/162.csv b/TickingHeartRate/csv/162.csv deleted file mode 100755 index 2d039c44..00000000 --- a/TickingHeartRate/csv/162.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bba9f892c99bbc5eb6740087807d9bda22fb3a002b11a739fcfb97befcfe8b21 -size 19 diff --git a/TickingHeartRate/csv/163.csv b/TickingHeartRate/csv/163.csv deleted file mode 100755 index 8402a8c5..00000000 --- a/TickingHeartRate/csv/163.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d6438dbc970c0a10979082a2c21fd62e9b984a0b9d3b4abaf2b0ca7c0945b5a -size 19 diff --git a/TickingHeartRate/csv/164.csv b/TickingHeartRate/csv/164.csv deleted file mode 100755 index 00851a0a..00000000 --- a/TickingHeartRate/csv/164.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83590318a7d8972d324c2ac929558d0843c238358e774176943d2d98c55d6f6f -size 19 diff --git a/TickingHeartRate/csv/165.csv b/TickingHeartRate/csv/165.csv deleted file mode 100755 index 9348d64b..00000000 --- a/TickingHeartRate/csv/165.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9a3ed1178875dc03971c37fa77e784f2d28ea9a9c4125e21c92143b8a6ef1ef -size 19 diff --git a/TickingHeartRate/csv/166.csv b/TickingHeartRate/csv/166.csv deleted file mode 100755 index 08dc4f09..00000000 --- a/TickingHeartRate/csv/166.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4be6397748d17d5c656f239ec6108e1303495716e0ca12ae7e026992f5dea0cd -size 19 diff --git a/TickingHeartRate/csv/167.csv b/TickingHeartRate/csv/167.csv deleted file mode 100755 index 87485311..00000000 --- a/TickingHeartRate/csv/167.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40087e78e867c20537d0cd2962fe010648eda504feab57a210b698f205e33214 -size 19 diff --git a/TickingHeartRate/csv/168.csv b/TickingHeartRate/csv/168.csv deleted file mode 100755 index fc8ae614..00000000 --- a/TickingHeartRate/csv/168.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e3f7a97e62544cee758be9eca274f6aef6dc7d7032b9bdb6002247148b2ef1c1 -size 19 diff --git a/TickingHeartRate/csv/169.csv b/TickingHeartRate/csv/169.csv deleted file mode 100755 index d37b0de1..00000000 --- a/TickingHeartRate/csv/169.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3dcc738de773664358ec7614d0cb912528108b189a1b87bc07f32c646099e5ee -size 19 diff --git a/TickingHeartRate/csv/17.csv b/TickingHeartRate/csv/17.csv deleted file mode 100755 index 83aef650..00000000 --- a/TickingHeartRate/csv/17.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de16706e962dbcd2d88f4dad3a62c702f988f59836c3e27f530f648b8801f4b1 -size 18 diff --git a/TickingHeartRate/csv/170.csv b/TickingHeartRate/csv/170.csv deleted file mode 100755 index faf0db45..00000000 --- a/TickingHeartRate/csv/170.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc887cdee3014e11c9f7660e23989c1a12ff7877613758c6ed49ec6fdf0f39fb -size 19 diff --git a/TickingHeartRate/csv/171.csv b/TickingHeartRate/csv/171.csv deleted file mode 100755 index 14616241..00000000 --- a/TickingHeartRate/csv/171.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ade0a803fa5b7f7b9fdd51ca85b868658fad102acc5c7ac4dc93ca4c94dbee8 -size 19 diff --git a/TickingHeartRate/csv/172.csv b/TickingHeartRate/csv/172.csv deleted file mode 100755 index 4255e935..00000000 --- a/TickingHeartRate/csv/172.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f1e4a49eb06b5c2a0f5b47f8f327a0108037013dc69daa7f660d4c43563f097 -size 19 diff --git a/TickingHeartRate/csv/173.csv b/TickingHeartRate/csv/173.csv deleted file mode 100755 index c9e4526d..00000000 --- a/TickingHeartRate/csv/173.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:090cfa164f0cf33e535800b1637e8736783e5203b62773bcbc8a609062eb633a -size 19 diff --git a/TickingHeartRate/csv/174.csv b/TickingHeartRate/csv/174.csv deleted file mode 100755 index a7eaabd7..00000000 --- a/TickingHeartRate/csv/174.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1cdfd3f848cf71c00cc81ce58f3b7bc095b0e49efe7da8569016bf6952830413 -size 19 diff --git a/TickingHeartRate/csv/175.csv b/TickingHeartRate/csv/175.csv deleted file mode 100755 index 6c60fe9d..00000000 --- a/TickingHeartRate/csv/175.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30ef4b0c6d9f36bef52205f6af4e0ddc445b1629db37bc14cb4f9fb5723d0851 -size 19 diff --git a/TickingHeartRate/csv/176.csv b/TickingHeartRate/csv/176.csv deleted file mode 100755 index d18adce5..00000000 --- a/TickingHeartRate/csv/176.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:899c2618ff76786a9285e3ad27db585fbd67fa1a8c03eaef979c8fcd41b5b228 -size 19 diff --git a/TickingHeartRate/csv/177.csv b/TickingHeartRate/csv/177.csv deleted file mode 100755 index cd77dd9b..00000000 --- a/TickingHeartRate/csv/177.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:590908f2cf58b358452b2aeeaa0c02625476845c41a2ffe2da841292c4cc96d6 -size 19 diff --git a/TickingHeartRate/csv/178.csv b/TickingHeartRate/csv/178.csv deleted file mode 100755 index f1ebf788..00000000 --- a/TickingHeartRate/csv/178.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a0f52fdf806aaa56174ce4b7ca4d6196f7e5d47d61ba1c62919bd6d0e7f3ae3 -size 19 diff --git a/TickingHeartRate/csv/179.csv b/TickingHeartRate/csv/179.csv deleted file mode 100755 index 21b78401..00000000 --- a/TickingHeartRate/csv/179.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6b57c5923af88b9c1c87e465c5cb4c7d61596f9d12d4a7b2eb8ecb1efca23a3d -size 19 diff --git a/TickingHeartRate/csv/18.csv b/TickingHeartRate/csv/18.csv deleted file mode 100755 index e99ea137..00000000 --- a/TickingHeartRate/csv/18.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb1e40e02115fe05e0bfcfc772b3b4a0a27381ae387e34c253437741689db6f4 -size 18 diff --git a/TickingHeartRate/csv/180.csv b/TickingHeartRate/csv/180.csv deleted file mode 100755 index 936de0c1..00000000 --- a/TickingHeartRate/csv/180.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:62582cf8c4f17b5935905305ea39a6a76e0ad794ce4f7e4675f89348398e3377 -size 19 diff --git a/TickingHeartRate/csv/181.csv b/TickingHeartRate/csv/181.csv deleted file mode 100755 index d5082379..00000000 --- a/TickingHeartRate/csv/181.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f634de85877977742516dd8db4a382df24e3ec2123f4d0ae21200865b852cb65 -size 19 diff --git a/TickingHeartRate/csv/182.csv b/TickingHeartRate/csv/182.csv deleted file mode 100755 index d429b71d..00000000 --- a/TickingHeartRate/csv/182.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:870e12693dde977738c193002f0a01619787db45c4152aecb74fd13a9ff2c9b3 -size 19 diff --git a/TickingHeartRate/csv/183.csv b/TickingHeartRate/csv/183.csv deleted file mode 100755 index 3a47dc85..00000000 --- a/TickingHeartRate/csv/183.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac0f4d5d3421a8e361879da15e57c7ee2e8937d868779f74e70d3c73d32567ad -size 19 diff --git a/TickingHeartRate/csv/184.csv b/TickingHeartRate/csv/184.csv deleted file mode 100755 index f727c0f2..00000000 --- a/TickingHeartRate/csv/184.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4006ba4175747958d33300b5ebdf9728195f3b567cce488ea29b0d8e1497c381 -size 19 diff --git a/TickingHeartRate/csv/185.csv b/TickingHeartRate/csv/185.csv deleted file mode 100755 index 91e0be66..00000000 --- a/TickingHeartRate/csv/185.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6523f20a368b7004092358dc8c4c53183e7fd0f9f42426843a6b611360b4d878 -size 19 diff --git a/TickingHeartRate/csv/186.csv b/TickingHeartRate/csv/186.csv deleted file mode 100755 index 734c1ab1..00000000 --- a/TickingHeartRate/csv/186.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f2a5908604a3eed3d2b7bcd72cf18683e59db9f519ee0ef45d2e4ef53754330 -size 19 diff --git a/TickingHeartRate/csv/187.csv b/TickingHeartRate/csv/187.csv deleted file mode 100755 index 77b2b90e..00000000 --- a/TickingHeartRate/csv/187.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72bf2318b4379097a43781c442d37f498c83d8d6f57dd3bdf92e68cae6f660bd -size 19 diff --git a/TickingHeartRate/csv/188.csv b/TickingHeartRate/csv/188.csv deleted file mode 100755 index 63ffaf57..00000000 --- a/TickingHeartRate/csv/188.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b71c0773c581b7870be0098580fe34a9bc8d6cc91c62adac39c1b5b7f825d33f -size 19 diff --git a/TickingHeartRate/csv/189.csv b/TickingHeartRate/csv/189.csv deleted file mode 100755 index 701531aa..00000000 --- a/TickingHeartRate/csv/189.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c71304571cb58cbdec0b3fc64519aa1cd2464a9d4bf733867087dfe1cd53b9da -size 19 diff --git a/TickingHeartRate/csv/19.csv b/TickingHeartRate/csv/19.csv deleted file mode 100755 index bacad336..00000000 --- a/TickingHeartRate/csv/19.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b63bce82de969da349594419ead100564fc18b92a154035f4c3320571cbcdca7 -size 18 diff --git a/TickingHeartRate/csv/190.csv b/TickingHeartRate/csv/190.csv deleted file mode 100755 index 11e314c6..00000000 --- a/TickingHeartRate/csv/190.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e548ce42bad77dd5b7c80d4b50338ff8fea1c2673f201a4bcf33436f5064fedc -size 19 diff --git a/TickingHeartRate/csv/191.csv b/TickingHeartRate/csv/191.csv deleted file mode 100755 index fa0fc707..00000000 --- a/TickingHeartRate/csv/191.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6ea122f2c15b3146d86e8042cdcd7a8d118babd4e9cf9efbfa0063c02a10c8e -size 19 diff --git a/TickingHeartRate/csv/192.csv b/TickingHeartRate/csv/192.csv deleted file mode 100755 index 374683dd..00000000 --- a/TickingHeartRate/csv/192.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5354d30966d2338d71467da204d2afaf86abc74fd8ab1fe16fd122860068d68f -size 19 diff --git a/TickingHeartRate/csv/193.csv b/TickingHeartRate/csv/193.csv deleted file mode 100755 index ad574bb9..00000000 --- a/TickingHeartRate/csv/193.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1581ba6c56cea4770968aa0693e67d02565318ff5c8476857c285a2ecf953b2a -size 19 diff --git a/TickingHeartRate/csv/194.csv b/TickingHeartRate/csv/194.csv deleted file mode 100755 index 3d6baedd..00000000 --- a/TickingHeartRate/csv/194.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8014f8cdf984da4b14665ffef104e99137096c0dbcbadf3fdc8a605d04f60a61 -size 19 diff --git a/TickingHeartRate/csv/195.csv b/TickingHeartRate/csv/195.csv deleted file mode 100755 index 63fd934f..00000000 --- a/TickingHeartRate/csv/195.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea4aea7def7fc86b10d00c4462017a1f9a35c70acca645a355c6a79e86d8008a -size 19 diff --git a/TickingHeartRate/csv/196.csv b/TickingHeartRate/csv/196.csv deleted file mode 100755 index 3dde99c4..00000000 --- a/TickingHeartRate/csv/196.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c62a475674e5a121c60b96c976cac55860a9ad37278e2daba6e3f6ba43b10daf -size 19 diff --git a/TickingHeartRate/csv/197.csv b/TickingHeartRate/csv/197.csv deleted file mode 100755 index 3cd50847..00000000 --- a/TickingHeartRate/csv/197.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e84ce6eca326bf66ebae288813c521a7d84093a8722d356cf1dc4cd19542552a -size 19 diff --git a/TickingHeartRate/csv/198.csv b/TickingHeartRate/csv/198.csv deleted file mode 100755 index 0d9b36ed..00000000 --- a/TickingHeartRate/csv/198.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b06b61e6f8bcc04058e3e79744ef49379fffdf72d8ec7cd1a14479a218ca4be4 -size 19 diff --git a/TickingHeartRate/csv/199.csv b/TickingHeartRate/csv/199.csv deleted file mode 100755 index 36c0517c..00000000 --- a/TickingHeartRate/csv/199.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05c216ea5e130db26df26c3014eb6fe0fbec8cc281bf2096363b544400e08d53 -size 19 diff --git a/TickingHeartRate/csv/2.csv b/TickingHeartRate/csv/2.csv deleted file mode 100755 index e4eca505..00000000 --- a/TickingHeartRate/csv/2.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ab1c1957432cf6fa8f200ddba73cb006a7eea34092f0b9fed998a4435b2a8f6 -size 18 diff --git a/TickingHeartRate/csv/20.csv b/TickingHeartRate/csv/20.csv deleted file mode 100755 index 606ed990..00000000 --- a/TickingHeartRate/csv/20.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bf018cc585daa96fdb453d839d7add37c39b8f75e6a1cf4d31120d813169cf3 -size 18 diff --git a/TickingHeartRate/csv/200.csv b/TickingHeartRate/csv/200.csv deleted file mode 100755 index a1fed717..00000000 --- a/TickingHeartRate/csv/200.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:717ee3ede599287b0b3c8f7c41cfdeb6c944fa14a5b3ac56c6944cdd8c58e078 -size 19 diff --git a/TickingHeartRate/csv/201.csv b/TickingHeartRate/csv/201.csv deleted file mode 100755 index 09547684..00000000 --- a/TickingHeartRate/csv/201.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b07ef325cda0230e897095d576b88ddf3b4f20fd55ba67dfa2d5a8dcfb601b04 -size 19 diff --git a/TickingHeartRate/csv/202.csv b/TickingHeartRate/csv/202.csv deleted file mode 100755 index 5ce97edd..00000000 --- a/TickingHeartRate/csv/202.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a23c11bd11c1b19b85e2e56570236a7c2dfb903dc48040b56f5e09a5acf4cfba -size 19 diff --git a/TickingHeartRate/csv/203.csv b/TickingHeartRate/csv/203.csv deleted file mode 100755 index 1d5012a0..00000000 --- a/TickingHeartRate/csv/203.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2751c1e709c7ef45f1adcc3c6429aa287373cd41f673b15571a8b9a5f907dd28 -size 19 diff --git a/TickingHeartRate/csv/204.csv b/TickingHeartRate/csv/204.csv deleted file mode 100755 index 6c95b3a3..00000000 --- a/TickingHeartRate/csv/204.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9fe69baea8b68063ef26978367f64b642012ca9caa21bdd1dfb71bb3210d74d0 -size 19 diff --git a/TickingHeartRate/csv/205.csv b/TickingHeartRate/csv/205.csv deleted file mode 100755 index ef5ff95a..00000000 --- a/TickingHeartRate/csv/205.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d029e01003bb0eaf0f7f9ffd7e70ed2360510e265f8186e73d36f3ea16975db -size 19 diff --git a/TickingHeartRate/csv/206.csv b/TickingHeartRate/csv/206.csv deleted file mode 100755 index dc5c1b8f..00000000 --- a/TickingHeartRate/csv/206.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3a2a4a429ff72c25989e573ca2e76d78f371b1cb124194704e6261aaeacfaef -size 19 diff --git a/TickingHeartRate/csv/207.csv b/TickingHeartRate/csv/207.csv deleted file mode 100755 index 1b9cda03..00000000 --- a/TickingHeartRate/csv/207.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d808a10cc24e27c488283e7d05bbf99f1887bdbe3091a495f697db1119150d42 -size 19 diff --git a/TickingHeartRate/csv/208.csv b/TickingHeartRate/csv/208.csv deleted file mode 100755 index 88eb11ec..00000000 --- a/TickingHeartRate/csv/208.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:696d5628766a17407bb3c2c1ebbc8b8741f74dbe4c496c948b06a871b1a38cbd -size 18 diff --git a/TickingHeartRate/csv/209.csv b/TickingHeartRate/csv/209.csv deleted file mode 100755 index 2782f9ed..00000000 --- a/TickingHeartRate/csv/209.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14f00b274974aaf3b04905ddfe0ff9a1c40b51a29ec993e4de663f786d4ec416 -size 18 diff --git a/TickingHeartRate/csv/21.csv b/TickingHeartRate/csv/21.csv deleted file mode 100755 index 88e1c275..00000000 --- a/TickingHeartRate/csv/21.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e5c1bc2ba0420d9d24e50aeedee8bec5e9247003946d15b5559228e85d9ebb2 -size 18 diff --git a/TickingHeartRate/csv/210.csv b/TickingHeartRate/csv/210.csv deleted file mode 100755 index 584a9e35..00000000 --- a/TickingHeartRate/csv/210.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:98fb47c7e98bd5c21cf2a9d9f34297a748e900f39c5f16a38bd3629355310cf0 -size 18 diff --git a/TickingHeartRate/csv/211.csv b/TickingHeartRate/csv/211.csv deleted file mode 100755 index 25bc2f74..00000000 --- a/TickingHeartRate/csv/211.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:350fcd442e6ac3e3f8c88fe9ea10351c511063c788160b912f679224fc12bda2 -size 18 diff --git a/TickingHeartRate/csv/212.csv b/TickingHeartRate/csv/212.csv deleted file mode 100755 index 7da9118e..00000000 --- a/TickingHeartRate/csv/212.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8696cc991df2cd455d24cf9cd9f395db88f5d495d4fd8ba192c408adeb90230f -size 18 diff --git a/TickingHeartRate/csv/213.csv b/TickingHeartRate/csv/213.csv deleted file mode 100755 index 6671c60e..00000000 --- a/TickingHeartRate/csv/213.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:798c57668a8875d55895e8b55e4a66cb7b18f464e54753772a1ecf7ee96ef00f -size 18 diff --git a/TickingHeartRate/csv/214.csv b/TickingHeartRate/csv/214.csv deleted file mode 100755 index c3a7fb0a..00000000 --- a/TickingHeartRate/csv/214.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:402d532a9f05d653bb58e703760d5d9af7d15a13144a2faa187f6442e77d5652 -size 18 diff --git a/TickingHeartRate/csv/215.csv b/TickingHeartRate/csv/215.csv deleted file mode 100755 index bcc4e6a2..00000000 --- a/TickingHeartRate/csv/215.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2767974d0dbaeb46b0a9eb489ec23b3063419fa1876ecf55c764d4afdb8f1bc6 -size 18 diff --git a/TickingHeartRate/csv/216.csv b/TickingHeartRate/csv/216.csv deleted file mode 100755 index 3c895885..00000000 --- a/TickingHeartRate/csv/216.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bfcf346a3071c2503e474d1d71f36758784c06945e7b74e44e2cb4298de956ed -size 18 diff --git a/TickingHeartRate/csv/217.csv b/TickingHeartRate/csv/217.csv deleted file mode 100755 index 5e190c01..00000000 --- a/TickingHeartRate/csv/217.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1e128061bd76d8f1287ad13dc21423052afc74827332e6875231d9c309ba8ba -size 18 diff --git a/TickingHeartRate/csv/218.csv b/TickingHeartRate/csv/218.csv deleted file mode 100755 index 34fbc8d2..00000000 --- a/TickingHeartRate/csv/218.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b3b9eeba83ccc6d9f1d709986de6b88c329de2c8f21ac4639c70013502e532a1 -size 18 diff --git a/TickingHeartRate/csv/219.csv b/TickingHeartRate/csv/219.csv deleted file mode 100755 index bf9db654..00000000 --- a/TickingHeartRate/csv/219.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:672118dd4d67918915f4a21be5fb787834f45ee44b645d1a27ba9c9c997ad25f -size 18 diff --git a/TickingHeartRate/csv/22.csv b/TickingHeartRate/csv/22.csv deleted file mode 100755 index c4a2562b..00000000 --- a/TickingHeartRate/csv/22.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:024b3df47d9628f2be0b8cb4fce172dc5db7ebae7688c481f5f9112c5d0c3ca9 -size 18 diff --git a/TickingHeartRate/csv/220.csv b/TickingHeartRate/csv/220.csv deleted file mode 100755 index a686be0a..00000000 --- a/TickingHeartRate/csv/220.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7bf85886715d4c0446c9b142b2e8db02cabae60c06517c271c41992db9f389e -size 18 diff --git a/TickingHeartRate/csv/221.csv b/TickingHeartRate/csv/221.csv deleted file mode 100755 index 4a154240..00000000 --- a/TickingHeartRate/csv/221.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a62f8ddf8000205bbbaf552545d7d1a1f896cdc9c07c5f8dac9454145e3bef4c -size 18 diff --git a/TickingHeartRate/csv/222.csv b/TickingHeartRate/csv/222.csv deleted file mode 100755 index 51001a8b..00000000 --- a/TickingHeartRate/csv/222.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c736bd60520bfd1836fdfc140834af6e23b020aab0f36de9ad41af79bd92ad7d -size 18 diff --git a/TickingHeartRate/csv/223.csv b/TickingHeartRate/csv/223.csv deleted file mode 100755 index 7f1d53f5..00000000 --- a/TickingHeartRate/csv/223.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad90f9c2e686f39ce178af93bc2c39777fa6be924d1e6622d9898c32106f7c2c -size 18 diff --git a/TickingHeartRate/csv/224.csv b/TickingHeartRate/csv/224.csv deleted file mode 100755 index 6a496fd1..00000000 --- a/TickingHeartRate/csv/224.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1548949843b4af852d30e0921a599e6d97674a7b6148a6118787b7811b3a394f -size 18 diff --git a/TickingHeartRate/csv/225.csv b/TickingHeartRate/csv/225.csv deleted file mode 100755 index 1405b1ac..00000000 --- a/TickingHeartRate/csv/225.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9975c5eaa9350153cab51ebeb2079a056a9950fbd90f063822c12dbe311986a6 -size 18 diff --git a/TickingHeartRate/csv/226.csv b/TickingHeartRate/csv/226.csv deleted file mode 100755 index e1053ed4..00000000 --- a/TickingHeartRate/csv/226.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce80364101394532a0fa64aa6b469bffcc2db8652e5cc705734e769be0a57aa9 -size 18 diff --git a/TickingHeartRate/csv/227.csv b/TickingHeartRate/csv/227.csv deleted file mode 100755 index 9ca2040d..00000000 --- a/TickingHeartRate/csv/227.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68d86799a273a3ceb252acfe6de2cabf0113e98616790e88a5e645e55bda1a44 -size 18 diff --git a/TickingHeartRate/csv/228.csv b/TickingHeartRate/csv/228.csv deleted file mode 100755 index 42b708cb..00000000 --- a/TickingHeartRate/csv/228.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a51a240de0d0c9cb278a33e1863adfd00ac9e5e072420fcd882de15d00c3cb0 -size 19 diff --git a/TickingHeartRate/csv/229.csv b/TickingHeartRate/csv/229.csv deleted file mode 100755 index a7543b99..00000000 --- a/TickingHeartRate/csv/229.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2c0e63c015208a4cc74ccccbd11d895a1955133ae651ed63659d776e1581f4c -size 19 diff --git a/TickingHeartRate/csv/23.csv b/TickingHeartRate/csv/23.csv deleted file mode 100755 index 57fb0e3f..00000000 --- a/TickingHeartRate/csv/23.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06422d0e4c6777b769ef596b1fad76f52a78d1c4cf03cec4d5a05b248b959e01 -size 18 diff --git a/TickingHeartRate/csv/230.csv b/TickingHeartRate/csv/230.csv deleted file mode 100755 index ef050d28..00000000 --- a/TickingHeartRate/csv/230.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49d91af671f66377e46b5137b539dabaf16e2a37b58e543910e76eefc23eced0 -size 18 diff --git a/TickingHeartRate/csv/231.csv b/TickingHeartRate/csv/231.csv deleted file mode 100755 index dfe0e162..00000000 --- a/TickingHeartRate/csv/231.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d157ab444db9c622e895a322f42513176bdb533f3e7fcc7baf3aeac66e5edc5e -size 18 diff --git a/TickingHeartRate/csv/232.csv b/TickingHeartRate/csv/232.csv deleted file mode 100755 index 2da60674..00000000 --- a/TickingHeartRate/csv/232.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ba07438468e8ae73c2d608de117cc89d39bd699980332a36e3b4d7e96ca2f6e -size 18 diff --git a/TickingHeartRate/csv/233.csv b/TickingHeartRate/csv/233.csv deleted file mode 100755 index e815ce94..00000000 --- a/TickingHeartRate/csv/233.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:949887e6e74470d418a04ea3105e1ea5b017db8c25b066c25723292d4f67aba4 -size 19 diff --git a/TickingHeartRate/csv/234.csv b/TickingHeartRate/csv/234.csv deleted file mode 100755 index e3b28b19..00000000 --- a/TickingHeartRate/csv/234.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18ed90b668a7359d4b66e7244e214f0491c6d18d3aa0ac44f34f71f7e22a58c5 -size 19 diff --git a/TickingHeartRate/csv/235.csv b/TickingHeartRate/csv/235.csv deleted file mode 100755 index da40dae3..00000000 --- a/TickingHeartRate/csv/235.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71a56b177b19dc9a7415425dd627256891e6c4c7d2a2dfa9eb3fd98380e097c3 -size 19 diff --git a/TickingHeartRate/csv/236.csv b/TickingHeartRate/csv/236.csv deleted file mode 100755 index 1ff648d5..00000000 --- a/TickingHeartRate/csv/236.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47ec10c0cc4538a55d49bbb0dea4ea39da22f3a155937dba5572e4877303a79d -size 19 diff --git a/TickingHeartRate/csv/237.csv b/TickingHeartRate/csv/237.csv deleted file mode 100755 index e3898cbb..00000000 --- a/TickingHeartRate/csv/237.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b0447c73f2af3ba8f204d33c85f4a339910e2244e786225eeebdad24ebc60ac -size 18 diff --git a/TickingHeartRate/csv/238.csv b/TickingHeartRate/csv/238.csv deleted file mode 100755 index a6dd57b5..00000000 --- a/TickingHeartRate/csv/238.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:16671aa10ccb8dc49a6c0015dd498b730527c8ccae5168a0cbe19257a7ea9fad -size 18 diff --git a/TickingHeartRate/csv/239.csv b/TickingHeartRate/csv/239.csv deleted file mode 100755 index c3decf7c..00000000 --- a/TickingHeartRate/csv/239.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3f8f3c9c84bc7dd4666057e20e4e0bd9f1286009da4e1477661b56e4d3e9593 -size 18 diff --git a/TickingHeartRate/csv/24.csv b/TickingHeartRate/csv/24.csv deleted file mode 100755 index da6e85c5..00000000 --- a/TickingHeartRate/csv/24.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0619d0a70953e02176e509cd0463d95c81e1e0e67454114e0b926d626b296ff5 -size 18 diff --git a/TickingHeartRate/csv/240.csv b/TickingHeartRate/csv/240.csv deleted file mode 100755 index 0b626acf..00000000 --- a/TickingHeartRate/csv/240.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43b7a28345c7bf73a9b892ec0cc92c60608d30bae9e504a46e2b90725b8fc278 -size 18 diff --git a/TickingHeartRate/csv/241.csv b/TickingHeartRate/csv/241.csv deleted file mode 100755 index e2307316..00000000 --- a/TickingHeartRate/csv/241.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71b607d7d7f8522711b10dd10c60d10e7cad1444be8cf595a4749b61abf71368 -size 18 diff --git a/TickingHeartRate/csv/242.csv b/TickingHeartRate/csv/242.csv deleted file mode 100755 index 822e4626..00000000 --- a/TickingHeartRate/csv/242.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0ae07c3969ce1914b62377f97a65782358bb874eed85a6acb6f1610e22d68e9 -size 18 diff --git a/TickingHeartRate/csv/243.csv b/TickingHeartRate/csv/243.csv deleted file mode 100755 index c40ea172..00000000 --- a/TickingHeartRate/csv/243.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76941850351bae0317c13d96528dcef4d0406e5bc449b2d7f3c0335e0fdc8312 -size 18 diff --git a/TickingHeartRate/csv/244.csv b/TickingHeartRate/csv/244.csv deleted file mode 100755 index e3d7bb54..00000000 --- a/TickingHeartRate/csv/244.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d4458483cb09ea7c33134c1f25d804ce3c5eaffb1bab7873ab7c31dad3440e0 -size 18 diff --git a/TickingHeartRate/csv/245.csv b/TickingHeartRate/csv/245.csv deleted file mode 100755 index a43ad864..00000000 --- a/TickingHeartRate/csv/245.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79ef82715eba45f0d0af3ce94dedec7e3b18688ee6a9bdf5918dcc37817db934 -size 18 diff --git a/TickingHeartRate/csv/246.csv b/TickingHeartRate/csv/246.csv deleted file mode 100755 index 771f4db7..00000000 --- a/TickingHeartRate/csv/246.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd373127cf693579530113a76da8846f34ae5b33646915aa782b11bc5fb93e6c -size 18 diff --git a/TickingHeartRate/csv/247.csv b/TickingHeartRate/csv/247.csv deleted file mode 100755 index c8c94fe8..00000000 --- a/TickingHeartRate/csv/247.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cf504e10215bcb4b72fbc06c9b8b537c842227b204c3ee42d980a43eb630288 -size 19 diff --git a/TickingHeartRate/csv/248.csv b/TickingHeartRate/csv/248.csv deleted file mode 100755 index 5969975e..00000000 --- a/TickingHeartRate/csv/248.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77d045dbdb38867b1f8e939e661edb5bad5fc9b3879aae7c5e456b25a7bf4878 -size 19 diff --git a/TickingHeartRate/csv/249.csv b/TickingHeartRate/csv/249.csv deleted file mode 100755 index c5d3fd7d..00000000 --- a/TickingHeartRate/csv/249.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa9d4919e25c15ce35f0f18d1ec3223cec10c8351e43e63373631c527cabdf01 -size 18 diff --git a/TickingHeartRate/csv/25.csv b/TickingHeartRate/csv/25.csv deleted file mode 100755 index 645211ce..00000000 --- a/TickingHeartRate/csv/25.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:26399f98f6be82d052173403e82910b2366d8d2f31922bc96015a40a5bed86ed -size 18 diff --git a/TickingHeartRate/csv/250.csv b/TickingHeartRate/csv/250.csv deleted file mode 100755 index 19d0f17f..00000000 --- a/TickingHeartRate/csv/250.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ddf3e8d2ccbccf77cca6d02258134d71d57539165a0f4a23e437be358756f739 -size 18 diff --git a/TickingHeartRate/csv/26.csv b/TickingHeartRate/csv/26.csv deleted file mode 100755 index b694dcf1..00000000 --- a/TickingHeartRate/csv/26.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a297fdcce9e0b4964923d3e68bd361182b52b937cad784ca4ecef9d47611db4a -size 18 diff --git a/TickingHeartRate/csv/27.csv b/TickingHeartRate/csv/27.csv deleted file mode 100755 index d441e9af..00000000 --- a/TickingHeartRate/csv/27.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cba319838dceea7c68a8f6fe39bc9c0f752c1d96fe06922c982f82edb697ac1 -size 18 diff --git a/TickingHeartRate/csv/28.csv b/TickingHeartRate/csv/28.csv deleted file mode 100755 index a9f413e1..00000000 --- a/TickingHeartRate/csv/28.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd4fb7a9ae8107c4fb54fd7d8eb880b7ecf772c5d43a81a0db7e0dc2eb9bbea5 -size 18 diff --git a/TickingHeartRate/csv/29.csv b/TickingHeartRate/csv/29.csv deleted file mode 100755 index e9ba527a..00000000 --- a/TickingHeartRate/csv/29.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2983d2382742fe8455ba2baf44fe1f887c05e0df8315c9288b42632d23d6d97e -size 18 diff --git a/TickingHeartRate/csv/3.csv b/TickingHeartRate/csv/3.csv deleted file mode 100755 index 3e3e42fe..00000000 --- a/TickingHeartRate/csv/3.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad2854c0e2e22a46fc767181461a318042aba81e3fea562822cdcd38cdeef7b8 -size 18 diff --git a/TickingHeartRate/csv/30.csv b/TickingHeartRate/csv/30.csv deleted file mode 100755 index d457df2b..00000000 --- a/TickingHeartRate/csv/30.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a0ee3325fb379f19410f7ac22c5c7a7ed270e5697a945b4e5505b336ea62275 -size 18 diff --git a/TickingHeartRate/csv/31.csv b/TickingHeartRate/csv/31.csv deleted file mode 100755 index d9de04a4..00000000 --- a/TickingHeartRate/csv/31.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f9153eccb80e6f32042bfe00cdd3607b408d9bce7c7eb170d5bfb10fdfe36d7f -size 18 diff --git a/TickingHeartRate/csv/32.csv b/TickingHeartRate/csv/32.csv deleted file mode 100755 index 8212c159..00000000 --- a/TickingHeartRate/csv/32.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:519a3ae3f88827b96367b7aefa46488f70b21ab4ea334a2b7306904e17645146 -size 18 diff --git a/TickingHeartRate/csv/33.csv b/TickingHeartRate/csv/33.csv deleted file mode 100755 index 44468da7..00000000 --- a/TickingHeartRate/csv/33.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4bc1025b682155e051e82a5a2fde3dacd19bff51f0ff6cc67e30ef029cac104a -size 18 diff --git a/TickingHeartRate/csv/34.csv b/TickingHeartRate/csv/34.csv deleted file mode 100755 index e15a5dad..00000000 --- a/TickingHeartRate/csv/34.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e7c2f35c4a90ff6d04e8b5de3b696169de74d95efd57d779d2b66acb2f7e8dd -size 18 diff --git a/TickingHeartRate/csv/35.csv b/TickingHeartRate/csv/35.csv deleted file mode 100755 index 6709b87c..00000000 --- a/TickingHeartRate/csv/35.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a49377e055cae2c36dba4d3f29fbfeab19a8a514da1d44c6d816b5941221f8bd -size 18 diff --git a/TickingHeartRate/csv/36.csv b/TickingHeartRate/csv/36.csv deleted file mode 100755 index a1ffc078..00000000 --- a/TickingHeartRate/csv/36.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bce74442ac836448a84f6941d4ed11419d9761a8267b0c39ff61eb0cc5b9eff5 -size 18 diff --git a/TickingHeartRate/csv/37.csv b/TickingHeartRate/csv/37.csv deleted file mode 100755 index 6abb2630..00000000 --- a/TickingHeartRate/csv/37.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3beb609ed3b683cff8c6ccb9575ac78ce75d38ca9fe09d3704cc04447f834847 -size 18 diff --git a/TickingHeartRate/csv/38.csv b/TickingHeartRate/csv/38.csv deleted file mode 100755 index 8df8bb54..00000000 --- a/TickingHeartRate/csv/38.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:09d235cd6fedc3c0265458bee555b0ca71bdc6ca7acfe02d98fb6bdcd1a83d13 -size 18 diff --git a/TickingHeartRate/csv/39.csv b/TickingHeartRate/csv/39.csv deleted file mode 100755 index a3438b2b..00000000 --- a/TickingHeartRate/csv/39.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8dda9ba4fac00b3253a436ae22301020fd01e13f928c3ce00c14d5cd72543df6 -size 18 diff --git a/TickingHeartRate/csv/4.csv b/TickingHeartRate/csv/4.csv deleted file mode 100755 index ba0bc7f1..00000000 --- a/TickingHeartRate/csv/4.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc7aa622360ffc36874fd403491a3a4b37cd35143572f27e034653572a434259 -size 18 diff --git a/TickingHeartRate/csv/40.csv b/TickingHeartRate/csv/40.csv deleted file mode 100755 index 9c0794b9..00000000 --- a/TickingHeartRate/csv/40.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03f5963ef3481b83df010abfa8b106afdbb523ccdb32d1cebba147ee68027881 -size 18 diff --git a/TickingHeartRate/csv/41.csv b/TickingHeartRate/csv/41.csv deleted file mode 100755 index 91f1fcd6..00000000 --- a/TickingHeartRate/csv/41.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b3e9b80f5c8013996c3941642335850b3e2772d6a001b0c96d091f4907f9536 -size 18 diff --git a/TickingHeartRate/csv/42.csv b/TickingHeartRate/csv/42.csv deleted file mode 100755 index 5650febc..00000000 --- a/TickingHeartRate/csv/42.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:593436e8623db7234ae224793ba91717e5e6205681438a591894e3012fa5ae65 -size 18 diff --git a/TickingHeartRate/csv/43.csv b/TickingHeartRate/csv/43.csv deleted file mode 100755 index 63d89d45..00000000 --- a/TickingHeartRate/csv/43.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbded47b27abfabab7a2c7c57a223bf9cf1b409bbe813666efa56f8afe42b13e -size 18 diff --git a/TickingHeartRate/csv/44.csv b/TickingHeartRate/csv/44.csv deleted file mode 100755 index 826fc690..00000000 --- a/TickingHeartRate/csv/44.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2df75e92ee2395a12839404bb71bf6d7991ba53b29f93fb8f03b34a9d81131e3 -size 18 diff --git a/TickingHeartRate/csv/45.csv b/TickingHeartRate/csv/45.csv deleted file mode 100755 index c61436b3..00000000 --- a/TickingHeartRate/csv/45.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:235daf45d46f9a401696917de8732d1a69f40e78f47828def9fea74c40cd770b -size 18 diff --git a/TickingHeartRate/csv/46.csv b/TickingHeartRate/csv/46.csv deleted file mode 100755 index c3b65ecf..00000000 --- a/TickingHeartRate/csv/46.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:479d3b7fe8ef5a8de12211c910e1384df248eb8ad65fefe0135fcb06401fc9f9 -size 18 diff --git a/TickingHeartRate/csv/47.csv b/TickingHeartRate/csv/47.csv deleted file mode 100755 index 1abdfaee..00000000 --- a/TickingHeartRate/csv/47.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:159e5605d7fc4ca7bc5330ab781fa4fd99ec31f30d873641d768a119645957d3 -size 18 diff --git a/TickingHeartRate/csv/48.csv b/TickingHeartRate/csv/48.csv deleted file mode 100755 index 7ff9aab1..00000000 --- a/TickingHeartRate/csv/48.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40cf7f10760e5311070322e8c363955de2bc9617b4144b4d502bb7f809be0a94 -size 18 diff --git a/TickingHeartRate/csv/49.csv b/TickingHeartRate/csv/49.csv deleted file mode 100755 index d428c16f..00000000 --- a/TickingHeartRate/csv/49.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c538e07681f2aa7cc8c91ba2bb7a48c5c5b67c27c759fc5e75b68d4295535222 -size 18 diff --git a/TickingHeartRate/csv/5.csv b/TickingHeartRate/csv/5.csv deleted file mode 100755 index 68c091bd..00000000 --- a/TickingHeartRate/csv/5.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68302d6306ed574ebc66a6459b6202bf467360bc1aa5c2f11f8399004ccf6e39 -size 18 diff --git a/TickingHeartRate/csv/50.csv b/TickingHeartRate/csv/50.csv deleted file mode 100755 index fb67ca3e..00000000 --- a/TickingHeartRate/csv/50.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:82442cce815456fd0223bc86d82bdeff592edb78aa269ef063fa37c28c37ef59 -size 18 diff --git a/TickingHeartRate/csv/51.csv b/TickingHeartRate/csv/51.csv deleted file mode 100755 index 642aa328..00000000 --- a/TickingHeartRate/csv/51.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:020377c15799a7d4f665fa425f00cf207f05a351479928ce2e506ab91178c256 -size 18 diff --git a/TickingHeartRate/csv/52.csv b/TickingHeartRate/csv/52.csv deleted file mode 100755 index d5e85fba..00000000 --- a/TickingHeartRate/csv/52.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e343cb04688ff1599346a4fa8bac57977ef3d236b7f6a80fb21b028f6c4ce914 -size 18 diff --git a/TickingHeartRate/csv/53.csv b/TickingHeartRate/csv/53.csv deleted file mode 100755 index 68262d4c..00000000 --- a/TickingHeartRate/csv/53.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86221e11b3f0b7ba4599d039efcf7609aec03d309edb9602517553e5455fd4ea -size 18 diff --git a/TickingHeartRate/csv/54.csv b/TickingHeartRate/csv/54.csv deleted file mode 100755 index 75374614..00000000 --- a/TickingHeartRate/csv/54.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:48dfe38635f92baa6cf0b230429325f5f614b79dfcb02043ea8d79f44f1c0c6d -size 18 diff --git a/TickingHeartRate/csv/55.csv b/TickingHeartRate/csv/55.csv deleted file mode 100755 index 1ae0d1ba..00000000 --- a/TickingHeartRate/csv/55.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:101fa0cad5640605432bb94fa5616b1d05ca9cf73c6e6475819d62c5a9b8072a -size 18 diff --git a/TickingHeartRate/csv/56.csv b/TickingHeartRate/csv/56.csv deleted file mode 100755 index dc97e90e..00000000 --- a/TickingHeartRate/csv/56.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5b775cee7946f03acd052fce655e4e0fb5217d77663c66a3a14c21dedec2b55 -size 18 diff --git a/TickingHeartRate/csv/57.csv b/TickingHeartRate/csv/57.csv deleted file mode 100755 index 527f0031..00000000 --- a/TickingHeartRate/csv/57.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cb2b938783f72525b5e5c7093091309324f8a9ac06858c45b33bde923b2a39c -size 18 diff --git a/TickingHeartRate/csv/58.csv b/TickingHeartRate/csv/58.csv deleted file mode 100755 index 9605ac9f..00000000 --- a/TickingHeartRate/csv/58.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18b6800936688812cf75af2475ad896972500e6212696b6d27da237461736173 -size 18 diff --git a/TickingHeartRate/csv/59.csv b/TickingHeartRate/csv/59.csv deleted file mode 100755 index d7c80e9d..00000000 --- a/TickingHeartRate/csv/59.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e735984eca97fa7fed1739b876ecc13f616a5883e154459f20263020533e1d2e -size 18 diff --git a/TickingHeartRate/csv/6.csv b/TickingHeartRate/csv/6.csv deleted file mode 100755 index 1913776c..00000000 --- a/TickingHeartRate/csv/6.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f90aa3d2434e92d2af45fbcc662400ee0fab0eadcd68b2c6870ceb39882db515 -size 18 diff --git a/TickingHeartRate/csv/60.csv b/TickingHeartRate/csv/60.csv deleted file mode 100755 index de577099..00000000 --- a/TickingHeartRate/csv/60.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7985cd5f8a00f3448e69b402b4585c1ad34a7047546720cfe56bbcb60898d36 -size 18 diff --git a/TickingHeartRate/csv/61.csv b/TickingHeartRate/csv/61.csv deleted file mode 100755 index f948248a..00000000 --- a/TickingHeartRate/csv/61.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:868b7cef6739e3a893d35ee4978993c2c29ad9a7bf578180d2cb04b8aba6057d -size 18 diff --git a/TickingHeartRate/csv/62.csv b/TickingHeartRate/csv/62.csv deleted file mode 100755 index 3fa2e902..00000000 --- a/TickingHeartRate/csv/62.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a0581c6cca9d256e93e0b2c5dac4b667b9a9fbbf7d1fe54f7e085a67b403d62 -size 18 diff --git a/TickingHeartRate/csv/63.csv b/TickingHeartRate/csv/63.csv deleted file mode 100755 index dce4d115..00000000 --- a/TickingHeartRate/csv/63.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:331a2e26dddc4e05a25f79ca9c644e5556c21ee220feb4c2913a0251ec409056 -size 18 diff --git a/TickingHeartRate/csv/64.csv b/TickingHeartRate/csv/64.csv deleted file mode 100755 index a46f9593..00000000 --- a/TickingHeartRate/csv/64.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12b099d8e2d02fa288e3a17859fd71c724abeefbe61f5a15d0b5b1658ce9accd -size 18 diff --git a/TickingHeartRate/csv/65.csv b/TickingHeartRate/csv/65.csv deleted file mode 100755 index 88f52341..00000000 --- a/TickingHeartRate/csv/65.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9e86cd01b10c288cdc7ea7f50a71971797c6984e430a53449203e2a3c596eed8 -size 18 diff --git a/TickingHeartRate/csv/66.csv b/TickingHeartRate/csv/66.csv deleted file mode 100755 index c931ec60..00000000 --- a/TickingHeartRate/csv/66.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aea5c99e1ef536b14e6b3d9f3c3916f10fe5c0db3d49cf3251412cc9a23e88d7 -size 18 diff --git a/TickingHeartRate/csv/67.csv b/TickingHeartRate/csv/67.csv deleted file mode 100755 index 0f6a6ef8..00000000 --- a/TickingHeartRate/csv/67.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ac11c64ca4ec373b5130fd1a388477dd8d4705714a75caf3fe8c7582127a744 -size 18 diff --git a/TickingHeartRate/csv/68.csv b/TickingHeartRate/csv/68.csv deleted file mode 100755 index 3e8641de..00000000 --- a/TickingHeartRate/csv/68.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0caf95203b2f7812bf68040cf93e7714ecc8addcb89b31f33f59b824cff4f212 -size 18 diff --git a/TickingHeartRate/csv/69.csv b/TickingHeartRate/csv/69.csv deleted file mode 100755 index ad356d33..00000000 --- a/TickingHeartRate/csv/69.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd79107138adef6e74f0c0350b11ccef855eed19c36effa7ca222c108d05600a -size 18 diff --git a/TickingHeartRate/csv/7.csv b/TickingHeartRate/csv/7.csv deleted file mode 100755 index 2620f74d..00000000 --- a/TickingHeartRate/csv/7.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0657c08c49a3038ab82169ef43982f0b16045375f5dbd0fb2101a5229196181f -size 18 diff --git a/TickingHeartRate/csv/70.csv b/TickingHeartRate/csv/70.csv deleted file mode 100755 index 48e920a4..00000000 --- a/TickingHeartRate/csv/70.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9ba4b163f91b8e77b9dedbadfc6a6ca23a61a15381469cdfba6e7802e4ab39c -size 18 diff --git a/TickingHeartRate/csv/71.csv b/TickingHeartRate/csv/71.csv deleted file mode 100755 index 44b4536d..00000000 --- a/TickingHeartRate/csv/71.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3147608877033cc1c414ddb1b65048666a9cf14974941d1b17a42d6f5de6137c -size 18 diff --git a/TickingHeartRate/csv/72.csv b/TickingHeartRate/csv/72.csv deleted file mode 100755 index f5eab3d1..00000000 --- a/TickingHeartRate/csv/72.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:75acc839ece9d70b3c35c8d7fc912530284aa93a2ba8da794f71d3c4d5f1f6f4 -size 18 diff --git a/TickingHeartRate/csv/73.csv b/TickingHeartRate/csv/73.csv deleted file mode 100755 index 03dba159..00000000 --- a/TickingHeartRate/csv/73.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c50cd6e2ac0202d54eb7f9fcee56652ff4baeca8f68943e19adcffdc60e2c9b -size 18 diff --git a/TickingHeartRate/csv/74.csv b/TickingHeartRate/csv/74.csv deleted file mode 100755 index d5ede9bd..00000000 --- a/TickingHeartRate/csv/74.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0f0542f107b1da3a9f84c55a3f9d3e3027970631806630e592b9f8f4d854d6a -size 18 diff --git a/TickingHeartRate/csv/75.csv b/TickingHeartRate/csv/75.csv deleted file mode 100755 index 86d9d3db..00000000 --- a/TickingHeartRate/csv/75.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ae4b9dbe9fc74feabcf6be3f241384b309fac6d6a75ea855b683a54047b2f54f -size 18 diff --git a/TickingHeartRate/csv/76.csv b/TickingHeartRate/csv/76.csv deleted file mode 100755 index 8a061d80..00000000 --- a/TickingHeartRate/csv/76.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:453269f59abbad47511d97360a7b431112366c0699e54afba170658362c7d5f6 -size 18 diff --git a/TickingHeartRate/csv/77.csv b/TickingHeartRate/csv/77.csv deleted file mode 100755 index 7997613f..00000000 --- a/TickingHeartRate/csv/77.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b263b31d2a9d51e08a1aea5cf16a18afdf59759087e2913acd1affaca7f32df1 -size 19 diff --git a/TickingHeartRate/csv/78.csv b/TickingHeartRate/csv/78.csv deleted file mode 100755 index 3240b5f0..00000000 --- a/TickingHeartRate/csv/78.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52ef0b4c92d1d4e4d13eb7671f9427f60e565fbdfac239df6a9fb07a6d14937f -size 19 diff --git a/TickingHeartRate/csv/79.csv b/TickingHeartRate/csv/79.csv deleted file mode 100755 index f1152c67..00000000 --- a/TickingHeartRate/csv/79.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2a028fc4911b6f76505ea5bf9c090d2cc0696d090aa20e7268fef61bcba5542f -size 19 diff --git a/TickingHeartRate/csv/8.csv b/TickingHeartRate/csv/8.csv deleted file mode 100755 index f5f4ea9a..00000000 --- a/TickingHeartRate/csv/8.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9cb8bfa0cce3111a3cc925326268be74461453a990ea2514396200ef27d1b940 -size 18 diff --git a/TickingHeartRate/csv/80.csv b/TickingHeartRate/csv/80.csv deleted file mode 100755 index 3a822843..00000000 --- a/TickingHeartRate/csv/80.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d780e496d301d3b361243db4e8a8ae0e91da919f66418fe8dcd2168b6810efc7 -size 19 diff --git a/TickingHeartRate/csv/81.csv b/TickingHeartRate/csv/81.csv deleted file mode 100755 index a6885c75..00000000 --- a/TickingHeartRate/csv/81.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b20e01f2aeddaee8107e0a3fc29f2bf8841e766888435dffce3a8b346904921 -size 19 diff --git a/TickingHeartRate/csv/82.csv b/TickingHeartRate/csv/82.csv deleted file mode 100755 index 59505775..00000000 --- a/TickingHeartRate/csv/82.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:69cf43f91ea6191f8705d95b972fe4114d96c558e63f84abf26e33563549ec65 -size 19 diff --git a/TickingHeartRate/csv/83.csv b/TickingHeartRate/csv/83.csv deleted file mode 100755 index eca3a703..00000000 --- a/TickingHeartRate/csv/83.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:033245ec25146379830ee1fc9a08d76269c23eb080a51f81c6da7a599588ca94 -size 19 diff --git a/TickingHeartRate/csv/84.csv b/TickingHeartRate/csv/84.csv deleted file mode 100755 index 006b3472..00000000 --- a/TickingHeartRate/csv/84.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2de7ba714e665517f218dbb7a3a81f52895940326fb78c34d3bf5ae24a9ef697 -size 19 diff --git a/TickingHeartRate/csv/85.csv b/TickingHeartRate/csv/85.csv deleted file mode 100755 index ebe4facf..00000000 --- a/TickingHeartRate/csv/85.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:836c9317839fbef6209cab4c8ba89ddaac420ddc23994eac3d9bad1c5c793c2d -size 19 diff --git a/TickingHeartRate/csv/86.csv b/TickingHeartRate/csv/86.csv deleted file mode 100755 index ffe15968..00000000 --- a/TickingHeartRate/csv/86.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b9e2abd970ac3a5d2ab4231d5cc361f2cfcd0e726030f7d50c234c214aa02039 -size 19 diff --git a/TickingHeartRate/csv/87.csv b/TickingHeartRate/csv/87.csv deleted file mode 100755 index ccf5b040..00000000 --- a/TickingHeartRate/csv/87.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa521b7c1194d7960ab1b83936028638c0a648b184884cbc303142a789ce8bc9 -size 19 diff --git a/TickingHeartRate/csv/88.csv b/TickingHeartRate/csv/88.csv deleted file mode 100755 index a0bd5e14..00000000 --- a/TickingHeartRate/csv/88.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7074e5b58bebc0021841ae251dfe8bedcb066102b7bce7d4b291632d8371ed5e -size 19 diff --git a/TickingHeartRate/csv/89.csv b/TickingHeartRate/csv/89.csv deleted file mode 100755 index c096bd7c..00000000 --- a/TickingHeartRate/csv/89.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3fde70e84f06aa076b91173a7b6f562521c040e1e1813a468999798550b59fc6 -size 19 diff --git a/TickingHeartRate/csv/9.csv b/TickingHeartRate/csv/9.csv deleted file mode 100755 index 24255beb..00000000 --- a/TickingHeartRate/csv/9.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ff160d076f4ed6754f85c5ad6267ca1e7c73b7e86fb6eb893fd4d4d7f8c6b38b -size 18 diff --git a/TickingHeartRate/csv/90.csv b/TickingHeartRate/csv/90.csv deleted file mode 100755 index 1b174ace..00000000 --- a/TickingHeartRate/csv/90.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d77538954974cd8ad5ebc8181f51c58e56f78646e0a66c12305ef59a6eea023 -size 19 diff --git a/TickingHeartRate/csv/91.csv b/TickingHeartRate/csv/91.csv deleted file mode 100755 index 922d6e5a..00000000 --- a/TickingHeartRate/csv/91.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6f3cf7a8e527e824a04ced7f7e664d22c00a20467cebd27d9c045d7e1b9827e8 -size 19 diff --git a/TickingHeartRate/csv/92.csv b/TickingHeartRate/csv/92.csv deleted file mode 100755 index 08dd400f..00000000 --- a/TickingHeartRate/csv/92.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c0e26cf76fb1b6e52d59980221b96e67fde537ffe943d22113a29355bf4fdcb -size 19 diff --git a/TickingHeartRate/csv/93.csv b/TickingHeartRate/csv/93.csv deleted file mode 100755 index 0ca27fe3..00000000 --- a/TickingHeartRate/csv/93.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25a2c4f25c63a8374361ec67f0e7f00aa5785fc03fccb545cbdd53ab8d29627e -size 19 diff --git a/TickingHeartRate/csv/94.csv b/TickingHeartRate/csv/94.csv deleted file mode 100755 index 447cec2e..00000000 --- a/TickingHeartRate/csv/94.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2c8cd09dd5818e235783e3161ce79bbc36b301af6ffb98280008dc832178043 -size 19 diff --git a/TickingHeartRate/csv/95.csv b/TickingHeartRate/csv/95.csv deleted file mode 100755 index ea283e22..00000000 --- a/TickingHeartRate/csv/95.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:41f6e56287b34a74acd126bdf765cb5aa9ec5c74de1d95ae176927d406f2ab0e -size 19 diff --git a/TickingHeartRate/csv/96.csv b/TickingHeartRate/csv/96.csv deleted file mode 100755 index d3ba2681..00000000 --- a/TickingHeartRate/csv/96.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:692c4185d5f8c60acf0d4fbeafedc089b973bdcf35430b7b192a9c4e16531828 -size 19 diff --git a/TickingHeartRate/csv/97.csv b/TickingHeartRate/csv/97.csv deleted file mode 100755 index 9f6fa3f6..00000000 --- a/TickingHeartRate/csv/97.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2db9f3e59c34536de58050d4c58cc1a0356080474744353efcc20e9098efff0f -size 19 diff --git a/TickingHeartRate/csv/98.csv b/TickingHeartRate/csv/98.csv deleted file mode 100755 index 11c34e21..00000000 --- a/TickingHeartRate/csv/98.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd4a3d37dfe66b2cc930bfe79afb91355727e41b67dc1a8e08f515e4cadb1462 -size 19 diff --git a/TickingHeartRate/csv/99.csv b/TickingHeartRate/csv/99.csv deleted file mode 100755 index b71bba9c..00000000 --- a/TickingHeartRate/csv/99.csv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec637b68f83be8cc55a9e7ea67a42c22be2ddba3b601620bdc69606b783e566e -size 19 diff --git a/TickingHeartRate/heartRateChartEnd.png b/TickingHeartRate/heartRateChartEnd.png deleted file mode 100644 index a686427a..00000000 --- a/TickingHeartRate/heartRateChartEnd.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef183eddf33792510698ea875b3ed951c9ee4ed36fa09eafa1d1de10331b1a17 -size 51799 diff --git a/TickingHeartRate/heartRateChartMiddle.png b/TickingHeartRate/heartRateChartMiddle.png deleted file mode 100644 index e9f0fe76..00000000 --- a/TickingHeartRate/heartRateChartMiddle.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be3f6937dd003f82e1e230a5e1a507bdf647b631c378a186291a4ebd7d4202f8 -size 24486 diff --git a/TickingHeartRate/heartRateChartStart.png b/TickingHeartRate/heartRateChartStart.png deleted file mode 100644 index 7caae04a..00000000 --- a/TickingHeartRate/heartRateChartStart.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe0681002a94c97984841ab0a5873dcfd523b16296b7a879d6a6417487a240a9 -size 21938 diff --git a/TickingHeartRate/heartRateTableStart.png b/TickingHeartRate/heartRateTableStart.png deleted file mode 100644 index 9f9532c9..00000000 --- a/TickingHeartRate/heartRateTableStart.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9aa9db699e2c438d8db219e0f620a6de2fe6dea70634be9a01c96243d71657b -size 15945 diff --git a/TickingHeartRate/runTickingHeartRateReplay.py b/TickingHeartRate/runTickingHeartRateReplay.py deleted file mode 100644 index b1a85041..00000000 --- a/TickingHeartRate/runTickingHeartRateReplay.py +++ /dev/null @@ -1,34 +0,0 @@ -from deephaven import read_csv -from deephaven import DynamicTableWriter, Types as dht -from deephaven import DateTimeUtils -import pathlib -import time -import threading - -# Max number of csv files to pull in -csv_files=500 - -# Setup deephaven tables to hold heart rate results -column_names = ["Timestamp", "HeartRate"] -column_types = [dht.datetime, dht.int_] -hr_table_writer = DynamicTableWriter(column_names, column_types) -heart_rate_data = hr_table_writer.getTable() - -# Function to log data to the dynamic table -def thread_func(): - for x in range(1, csv_files): - next_file = ("/data/examples/TickingHeartRate/csv/%d.csv" % x) - print(next_file) - path = pathlib.Path(next_file) - if path.exists() and path.is_file(): - next_hr = read_csv(next_file, headless = True).view("Timestamp=Column1", "HeartRate=Column2") - next_record = next_hr.getRecord(0, "Timestamp", "HeartRate") - timestamp = next_record[0] - hr_table_writer.logRow(timestamp, int(next_record[1])) - time.sleep(1) - else: - print("File does not exist: " + next_file) - -# Thread to log data to the dynamic table -thread = threading.Thread(target = thread_func) -thread.start() \ No newline at end of file