時間通りにレールによるものですか?

個人的には、私は列車のファンです。彼らはゆっくりと、国を乗り越える方法です。カナダは鉄道輸送のための最高の候補者ではなく、沿岸の間のかなり大きな地域を提供していますが、鉄道はウィンザーとケベックシティとの間の廊下で日常的な列車サービスを運営しています。

残念ながら、トラベラーレールはカナダの工業鉄道に遅れを引き起こしていなければなりません。いくつかの列車が非常に定期的な遅れを持っていることを通知した後、それは電車によってそれぞれの典型的な性能を理解することが有益であるように思われました。これにより、このデータを公に供給しない。

ただし、出発時期だけでなく到着に関するデータを一部提供しています。レールサイトで任意の種類のブラウザで提供されるデータを掘り下げると、過去のスケジュール/実際の到着データを問い合わせることができました。結果はTrainStats.ca、ビアの画面でタイムリーな方法でパフォーマンスが得られます。私があなたの次の列車のチケットを得るときに、私はこれがすべてうまくいくのか、そしてまさにこのすべての作品を正確に行く方法だけでなく、休憩の後に私に参加してください。

データを取得する

Viaは、その条件ページに翌日だけでなく、以前の、現在、および翌日のルーチンデータを供給しています。これにより、一連の旅行データを開発しましょう。幸いなことに、私たちはChromeのインスペクタを終了したり、この取得要求を発見したりできます。

http://reservia.viarail.ca/tsi/gettrainStatus.aspx?l=en&tsiccode=87&departuredate=2015-12-01&trainInStandate=2015-12-01&t=144903500354.

ここでいくつかのジューシーなパラメータがあります。 TSitrainNumberは間違いなく私たちが見ている電車番号です。出発は、電車が去った日、到着日が到着した日です。トレーニング標高も同様に電車が残っている日付に設定されているようです。これを念頭に置いて、Pythonにジャンプする時間だけでなく、素晴らしいリクエストライブラリを利用して要求を作成する時が来ました。

このデータは、以下に表示されるものとは異なる方法で解釈またはコンパイルされ得る双方向のUnicodeテキストで構成されています。隠しUnicode文字を公開するエディタでデータを開くには、エディタでデータを開きます。
双方向のUnicodeキャラクターについてもっとたくさん発見してください

隠されたキャラクターを表示

Payload = {‘L’: ‘en’、

‘tsiccode’: ‘via’、

‘tsitrainnumber’:train_number、

「出発飼育」:Trip_Date、

‘到着日’:trip_date、

‘traininstancedate’:trip_date}

r = requests.get( ‘http://reservia.viarail.ca/tsi/gettrainStatus.aspx& #39;

params =ペイロード)

生の眺め

request.py

Githubによって開催されました

このコードを使用すると、任意の種類の日付に任意の種類の列車番号のデータを取得できます。いくつかのテストの後、私たちは、経由のデータが2015年4月に戻ってきたことを発見しました。これは、6か月以上のデータを提供します。すべての旅行のために、私たちは手配と実際の到着と各駅の出発時間を取得します。その情報を維持すると、列車がどのように遅れたかを正確に判断できます。

ページデータがHTMLとして取得された状態で、BeautifulSoupを使用してスクリプトがまとめられてすべての値を抽出しました。その後、このスクリプトはTripデータのオブジェクトを作成し、SQLAlchemyを使用してPostgreSQLデータベースに格納されます。これにより、後でデータにアクセスするのに効果的なものと同様に簡単になります。

最後のステップは、すべての電車番号とデータを引っ張る日数を繰り返すことでした。このスクリプトは、一部のネストされたループを利用してデータの保留と保存します。もう1つのスクリプトは、前日のデータをデータベースに保存します。これはcronジョブに設定されているので、データベースは新鮮に留まります。

(安い)ウェブサイトを構築する

trainstats.caのウェブサイト
この時点で、12,000以上の旅行に到着データがあります。プロットを作成するためのクエリを手動で実行することはできますが、プロットを作成するためのスクリプトを作成することはできます。それはそれがウェブサイトを開発する時が来たことを示しています。物事をウェブに素晴らしくすることは私の強いものではありません、それで[Phil Everson]はいくつかのWeb開発をするために飛び込んだ。

制約を追加するには、できるだけ手頃な価格のサイトを実行することを望みました。 Herokuのようなサービスオファリングとしてのプラットフォームは、月に20ドルを走行しました。ジジュアロースからのオンライン個人サーバーは少なくとも5ドルを犠牲にします。最も安価な選択は静的サイトを作ることでした。

静的Webページは、地理科学の日に戻る旅行です。ファイルを保持することができますが、サーバー上ではあらゆる種類の処理を行うことはできません。幸いなことに、これは私たちが提供していたデータの種類にうまく機能しました。集約されたトリップデータはすべてJSONファイルにエクスポートされる可能性があります。クライアント側のJavaScriptは、データとスクリーンプロットをトンすることができます。

TrainStatsサイトは、いくつかのHTML、CSS、およびブラウザ内で実行されるJavaScriptと、データを含むJSONデータのコレクションで構成されています。データセットは毎日生成されますもう1つのCronジョブによって、それはすべての処理が地域のコンピュータ上で1つのうちに行われることを可能にする。 その後、Amazon Web Servicesコマンドラインインターフェイスを利用して、データをS3にプッシュし、そこでユーザーが検索できます。 データセットは小さいのでS3だけでなく、コストは通常のホスティングよりも低くなります。

結果

このハックは主に楽しみのために開発されました、しかしそれはいくつかの魅力的な知見を持っています。 私の通常のオタワにトロントルートから、私は、84%の時間の84%の列車を選択するのは、38%の旅行の28%を遅らせるためだけに局所的な方法を選ぶ可能性が高くなります。 他の何人かの旅行者は統計を発見するかもしれません。 どちらの方法でも、安価にWebサービスを提供するだけでなく、データセットを削除するのに魅力的な行使でした。

あなたが源泉について考えているならば、それは撮影のためにgithubに全部です。 私たちはあなたがそれを使ってRailによってddosしないことを親切に要求します。

Leave a Reply

Your email address will not be published.

Related Post

Hackaday賞エントリー:モバイル電動ゲートHackaday賞エントリー:モバイル電動ゲート

電気ゲートは卓越した省節約装置にすることができ、ゲートが遠隔起動によって開閉されている間は自動車に残ることができます。しかし、それは必要なさまざまなリモコンとキーフォブを必要としています。 20年前、これは、カーフォンのリンガーまで一連のリレーを配線することによって達成されたかもしれません。最近では、それはもう少し洗練されたものです – GSM / GPRSモジュールはArduino Nanoに接続されています。着信が検出されると、ゲートが開かれます。 3分待った後、ゲートは再び閉じられます。 [ブレッドマン] Alduino NanoのシリアルとA6 GSMモジュールのリセットラインの中で働くことの漠然としたことにより、プロジェクト中にいくつかの後退を被りました。しかしながら、全体的に、ゲートは、そのような電化製品のように、それと同様にインターフェースするための基本的な装置であり、それはゲート開放および閉じる信号を送るための十分にラベル付けされ文書化されたピンを有する。 [ブレダマン]不要な操作を避けるためにシステムを設計するように注意していました。システムは常にゲートを自動的に閉じるように作成されます。そのため、コントローラの回数がどのように呼ばれても、ゲートは常に閉じた状態で終わります。コントローラがモバイルネットワークへの接続を失うことを正常に管理できるようにするために特別な注意が払われました。これらのような選択は、プロジェクトを使用することができます。 全体として、そのようなプロジェクトがどのように簡単にアクセス可能なプロジェクトであるかを示しています – いくつかの非常に慎重に選択されたモジュールとシリアルコミュニケーションの習得は、これらの日にほぼ何でも接続するためのプロジェクトをまとめるためのシンチです。別のテイクの場合は、Googleドライブにログに記録するこのガレージドアオープナーをチェックしてください。 HackadayPrize2017は次のようにスポンサーされています。

Roborama 2008BRoborama 2008B

Dallas Personal Robotics Groupは、11月22日(TX)で11月22日に半年産業のロボラマコンテストを開催しました。 DPRGは最近のオースティンメーカーフェアーにテーブルを持っていました。各春と秋、彼らは自律ロボットのためのロボラマコンテストを開催します。春のイベントは、屋外のセルフナビゲートロボットのコンテストがあります。 2008Bのコンテストは、屋内ロボットの能力をテストするために開発されました。通常、科学場所で開催され、今年、彼らはGarlandのDPRG保管施設でコンテストを持っていました。 幅広いロボットが表されました。コンピューティング電源は、WiFiを搭載したオンボードPCまで何もしませんでした。 Polulu 3piは大きく表されました。請負業者自身が高校生からベテランクラブ会員へのものであった。 受賞者は、各コンテストでの配置を購入する賞を受賞しました(最初に選ぶようになったなど)。賞品には、STM32Circle、Servos、またはLocal Electronics Storeへのギフト証明書が含まれています。他の参加者は彼らのロボットをもう少し威嚇するようにするためのミニシーロンのLEDディスプレイを得ました。あなたはここで完全な結果を見ることができます。 最も簡単なイベントはクイックトリップコンテストでした。この競争は、ロボットが始動領域から2番目の領域まで再配置し、再び戻っていました。この地域は壁によって囲まれて黒いテープでマークされ、ロボットは面積で考慮されるべきテープを完全に交差させるべきです。それが非常に単純に聞こえますが、すべてのロボットがコースを完了できなかったわけではありませんでした。勝者は、誰が最低時間でコースをうまく終わったかによって識別されました。クイックトリップコンテストの今年の勝者は、学生Nathan Harlanによって建てられたGortというLego-Botでした。 2番目のイベントは、T-Timeと呼ばれるほとんど複雑なほとんど複雑です。これには3つの領域があり、回転の精度をテストします。 3つの領域があり、ロボットは1つに始まり、他の2つを訪問して開始領域に戻るべきです。コースは「T」の形であるので、ロボットは数回のターンを作るべきです。 Boxyroxy MK IVでDavid Martineauによって獲得されました。 3番目のイベントは、ラインフォロー競争でした。ロボットは黒い背景の上の白いストライプをたくさんの鋭い曲線をたどるべきです。コース自体はヤード広場だけであるので、小さいボットははるかに簡単にフィットします。今年は、次の行がポルル3piについてのすべてでした。少なくとも4つの入力された、そしてそれらのすべてが変更されていないハードウェアを使用しました:唯一の違いはプログラミングでした。 1人の競技者は神経ネットを開発するための遺伝的アルゴリズムを使用しました。別の競技者はコンテストの日に彼をプログラムしました。勝者はSteve Rainwaterが所有するPI R四角形でした。 次のRoboramaは2009年春に常になるでしょう.DPRGはモンクラブ会議を開催しています。ロボット請負業者はまた、ロボトシストがガーランドの貯蔵施設で会い、袖口に取り組む機会である。クラブ会員だけでなく、誰にも開かれていません。

Amazon AlexaとGoogle Assistant WiFiスマートプラグの4パックは28.79ドルで、それぞれ$ 7.19Amazon AlexaとGoogle Assistant WiFiスマートプラグの4パックは28.79ドルで、それぞれ$ 7.19

は、Amazon AlexaとGoogle Assistantとわずか28.79ドルで互換性のあるTeckinから4パックのWiFiスマートプラグを入手できます。言い換えれば、これらのプラグはあなたにそれぞれ7.19ドルを後退させます。それはキラーの取引ではありませんか、それとも何ですか? スマートプラグは、ホームオートメーションの世界に入りたいが、それを行うために大きく費やす必要はない個人にとって、素晴らしい飛び去りポイントです。アプライアンスをスマートプラグに接続するだけで、音声やアプリによって制御できるものに変えます。これは非常に素晴らしいことです。理想的な今では、Teckinの人々は4つのスマートWiFiプラグをわずか28ドルで使用しています。 問題の契約は、4パックの小さなスマートWiFiプラグを対象としています。これらはすべて、AmazonのAlexa、Google Assistant、およびInternet Automation Outfit IFTTTと連携します。この作業のいずれかを作成するためにハブは必要ありません。プラグは、毎日、同時にオンになったりオフになったりする人のためのタイマーやスケジュールとともに、リモートと音声コントロールをサポートしています。 購入:Smart Outletは、Google Assistant、IFTTT、およびAmazonからのAlexaサポートで動作します。オリジナル価格$ 34 これらのプラグは非常に小さくなっているため、余地があまりにも多く、他のアウトレットを妨害することを心配する必要はありません。他のいくつかのスマートプラグが常にそうであるとは限らないので、アウトレットの周りのスペースが不足している場合は、小さな部屋を節約するのに最適です。 現在、これらのプラグはAmazonの販売ランキングで高く走っており、200を超える顧客レビューのうち5つのうち4.2つ星があり、それらが好評を博していると言っても安全です。 あなたもチェックアウトしたいかもしれません: iOS 12.1.3の最終的なIPSWリンクとiPhoneとiPadのOTAアップデートをダウンロード iOS 12.1.3リリースノート、変更ログ、および知っておくべきその他の変更 iOS 12.1.3をiOS 12.1.2 / 12.1にダウングレードする方法[ガイド] 脱獄iOS 12.1.3 / 12.1.2:現在のステータスは何ですか? Twitterでフォローしたり、Google+のサークルに追加したり、Facebookページのように私たちを追加して、Microsoft、Google、Apple、およびWebからすべての最新情報を更新し続けることができます。