Lakshadweep is a group of islands off south western coast of India, and has a lots of scenic and Beautiful Untouched Beaches and Lagoons worth exploring. The Islands are open to Tourists under permit from the Administrative Officer (email). The mode of transport however, is limited to Govt. operated Ships that mainly ply between Mainland India (Kochi and Mangalore port) and the islands of Lakshadweep. The prime purpose of these Ships is to satisfy the needs of the Islanders that depend solely on supplies from Mainland India. Hence, the Ship Schedule is mostly dependent on the Cargo needs of each Island and is prepared fresh every month and frequency is very low. The seat availability is very limited and gets filled within a couple of days of Ship Schedule announcement for any given month.
There is a Daily Flight from Kochi to Agatti operated by Air India, but the inter-Island transport is again limited to the same above Ships. The same ships are also used by the Islanders for transport, causing a stable internal demand for these limited seats.
Hence the need to come up with a suitable Itinerary planning method was felt by the author, and gave rise to this project.
This project deals with Directed Graph implementation of
Mainland(India) <–> Lakshadweep Sea Transport Network and Itinerary planning from this Graph.
Each Month, the Lakshadweep Administration publishes a new Schedule for these ships. An example of this schedule can be found below:
Manual Itinerary Planning based on above schedule is hard and will surely lead to missing a lot of possible travel options that are hard to spot in the above jumbled schedule. A small example can be found below:
The Ship Schedule is captcha and text selection protected Run the get_new_schedule.py to download latest Schedule
The Code will extract the required Schedule Table from the HTML file generated
Above Network shows Travel and Stay as Edges with related Data. Note: ‘ship’:None represents Stay at the island representing same Island by two different nodes at two different timing.
(You may neglect this part)
how_it_works.ipynb to understand the working of the project.
- Highest Contingency Itineraries
In case a ship gets cancelled, possibility to hop onto another ship and change itinerary without much hustle would be great. - Seat Availability
Scraping Seat Availability from lakport.nic.in.
Sorting out itineraries with maximum possible seats available for n passengers. (Seat Availability details on lakport.nic.in are not available for all ships at once. We need to check for availability for each ship on each voyage separately, protected by captcha.)