{"id":131727,"date":"2022-02-22T21:36:32","date_gmt":"2022-02-22T20:36:32","guid":{"rendered":"https:\/\/testweb.pid.cz\/en-o-systemu-about-system-pid\/en-otevrena-data-pid-open-data\/"},"modified":"2025-12-10T21:56:07","modified_gmt":"2025-12-10T20:56:07","slug":"opendata","status":"publish","type":"page","link":"https:\/\/pid.cz\/en\/opendata\/","title":{"rendered":"PID Opendata"},"content":{"rendered":"<p style=\"text-align: justify;\">Open data is processed primarily for data analysts and transport application developers. Regularly updated timetables, online information on the locations of connections, as well as data about stops and sale points are available.<\/p>\n<p style=\"text-align: justify;\">In addition to being placed here, the datasets are transferred to the Prague <a href=\"http:\/\/opendata.praha.eu\/organization\/ropid\">opendata portal<\/a>. The datasets are also processed by <a href=\"https:\/\/golemio.cz\/\">the Golemio data platform<\/a>.<\/p>\n<h2 style=\"text-align: justify;\">License<\/h2>\n<p style=\"text-align: justify;\">The data that can be downloaded directly from the website, like the entire website content, is licensed under <a href=\"https:\/\/creativecommons.org\/licenses\/by\/4.0\/\">CC-BY<\/a>, meaning it can be distributed further, but the author and any changes made must be mentioned. Data that can be downloaded from other sources linked here are governed by the license of the given source.<\/p>\n<p style=\"text-align: justify;\">The data located here is provided as a \u201cpreview\u201d without warranty. It may be deleted, moved, or the format may be modified without prior warning. The data may also be missing some information that is subject to stricter licenses.<\/p>\n<h2>Contact<\/h2>\n<p style=\"text-align: justify;\">If you are interested in using some of the datasets systematically, or would need any other support, please write to us at <a href=\"mailto:opendata@pid.cz\">opendata@pid.cz<\/a>.<\/p>\n<h2>Data sets<\/h2>\n<table class=\"table-pid table-pid-basic\" style=\"width: 100%; border-collapse: collapse;\" border=\"1\">\n<tbody>\n<tr>\n<th>Data set<\/th>\n<th>Update frequency<\/th>\n<th>Format \/ External link<\/th>\n<th>Details<\/th>\n<\/tr>\n<tr>\n<td><strong>PID Timetables in GTFS format<\/strong><br \/>\nTimetables of all PID lines (Prague + region) for 14 days in advance.<\/td>\n<td>daily<\/td>\n<td><a href=\"http:\/\/data.pid.cz\/PID_GTFS.zip\">[GTFS]<\/a><\/td>\n<td><a href=\"#h-gtfs\">documentation<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong>Current vehicle positions, connection delays<br \/>\n<\/strong>Information on the positions and delays of all vehicles on lines within PID provided in real time + departures of services from stops<strong><br \/>\n<\/strong><\/td>\n<td>online (API)<\/td>\n<td colspan=\"2\"><a href=\"https:\/\/api.golemio.cz\/v2\/pid\/docs\/openapi\/#\/%F0%9F%9B%A4%20RealTime%20Vehicle%20Positions\/get_vehiclepositions\" target=\"_blank\" rel=\"noopener\">GTFS Realtime or Golemio API JSON<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong>PID stop list<\/strong><br \/>\nAll stops, nodes, names, zones and stop locations<\/td>\n<td>daily<\/td>\n<td><a href=\"http:\/\/data.pid.cz\/stops\/xml\/StopsByName.xml\">[XML]<\/a> <a href=\"http:\/\/data.pid.cz\/stops\/json\/stops.json\">[JSON]<\/a><\/td>\n<td><a href=\"http:\/\/data.pid.cz\/stops\/xml\/StopsByName.xsd\">[XSD]<\/a>, <a href=\"#h-stops\">documentation<\/a><\/td>\n<\/tr>\n<tr>\n<td rowspan=\"2\"><strong>PID sales points<br \/>\n<\/strong>Places where you can purchase tickets, subscription coupons, or apply for a PID card (machines, contact points, stations)<\/td>\n<td rowspan=\"2\">approx. monthly<\/td>\n<td><a href=\"http:\/\/data.pid.cz\/pointsOfSale\/xml\/PointsOfSale.xml\">[XML]<\/a> <a href=\"http:\/\/data.pid.cz\/pointsOfSale\/json\/pointsOfSale.json\">[JSON]<\/a><\/td>\n<td><a href=\"http:\/\/data.pid.cz\/pointsOfSale\/xml\/PointsOfSale.xsd\">[XSD]<\/a>, <a href=\"#h-selling\">documentation<\/a><\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\">Dials: <a href=\"http:\/\/data.pid.cz\/pointsOfSale\/xml\/Constants-cs.xml\">[XML]<\/a> <a href=\"http:\/\/data.pid.cz\/pointsOfSale\/json\/consts-cs.json\">[JSON]<\/a> <a href=\"http:\/\/data.pid.cz\/pointsOfSale\/xml\/Constants.xsd\">[XSD]<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong>News, service disruptions and planned restrictions<\/strong><\/td>\n<td>real-time<\/td>\n<td><a href=\"https:\/\/pid.cz\/rss-kanal\/\">[RSS feeds]<\/a><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td colspan=\"4\"><em>Additional datasets can be found on the portal <\/em><a href=\"http:\/\/opendata.praha.eu\/organization\/ropid\"><em>opendata.praha.eu<\/em><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Documentation<\/h2>\n<h3 id=\"h-gtfs\">Timetables in GTFS format<\/h3>\n<p>The file contains timetables for all PID lines (metro, trams, trolleybuses, buses, funicular, ferries, trains), route information, guaranteed connections between connections, data on the structure of metro stations and information on the fare for calculating the price of a ticket in Prague. The file is generated every day between approximately 4:00 and 4:30.<\/p>\n<p style=\"text-align: justify;\">Data meets specification <a href=\"https:\/\/gtfs.org\/schedule\/reference\/\">GTFS Static<\/a>. The specifics of the PID timetable file and files and columns beyond the specification are listed below. These specifics serve only to improve understanding and human readability of the data, or provide additional information for the correct use of this data, and do not affect its validity.<\/p>\n<p><strong>agency.txt<\/strong><\/p>\n<ul>\n<li>Due to the uniformity of the fare, only the common carrier &#8220;PID&#8221; is listed. The distribution of routes between the contractual carriers is described in <em>route_sub_agencies.txt<\/em>.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>stops.txt<\/strong><\/p>\n<ul style=\"text-align: justify;\">\n<li>The file only contains stops that are currently in use, i.e. there are connections stopping at the stop on at least one day of the feed&#8217;s validity. If the stop is (even temporarily) out of service, it will not be included.<\/li>\n<li>Metro stations have two stops (one for each direction) combined into one station. The <em>stop_id<\/em> of this station is in the form U<em>hub_number<\/em>S<em>index<\/em>. At metro transfer stations there are four stops in one station, see below.<\/li>\n<\/ul>\n<blockquote><p><span>U1072S1<\/span>,&#8221;M\u016fstek&#8221;,50.08353,14.42456,&#8221;P&#8221;,,1,,1<br \/>\nU1072Z101P,&#8221;M\u016fstek&#8221;,50.08312,14.42496,&#8221;P&#8221;,,0,<span>U1072S1<\/span>,1<br \/>\nU1072Z102P,&#8221;M\u016fstek&#8221;,50.08394,14.42415,&#8221;P&#8221;,,0,<span>U1072S1<\/span>,1<br \/>\nU1072Z121P,&#8221;M\u016fstek&#8221;,50.08321,14.42279,&#8221;P&#8221;,,0,<span>U1072S1<\/span>,1<br \/>\nU1072Z122P,&#8221;M\u016fstek&#8221;,50.08361,14.42398,&#8221;P&#8221;,,0,<span>U1072S1<\/span>,1<\/p><\/blockquote>\n<ul style=\"text-align: justify;\">\n<li>Train stops and stations are currently represented by a single Stop record. In the future, it is planned to create a Station record for stations with at least two platforms and distinguish between individual platforms. The file also contains some points that are not stations and are used as transit points (<em>stop_id<\/em> starts with the letter &#8216;T&#8217;).<\/li>\n<li>In addition to stops and stations, the file also includes <em>intermediate nodes<\/em> and <em>boarding areas<\/em>, which are not stops (see <a href=\"https:\/\/developers.google.com\/transit\/gtfs\/reference\/#stopstxt\">GTFS specifications<\/a>)<\/li>\n<li><em>zone_id <\/em>describes the fare zone of the stop (P, 0, B, 1, 2, &#8230; but also e.g. &#8220;B,1&#8221;). It can be empty for lines with a special fare (e.g. AE), or contain a dash for stops\/stations outside the PID system. Since different lines can be classified into different fare zones at one stop, the stop can be split into multiple &#8220;virtual&#8221; entries, all of which share the same position on the map. This is necessary, for example, for calculating the price. Physically, only one stop sign is then in place. Below is an example of an exit stop at \u010cern\u00fd Most.<\/li>\n<\/ul>\n<blockquote><p>U897<span>Z1P<\/span>,&#8221;\u010cern\u00fd Most&#8221;,50.10912,14.57713,<span>&#8220;P&#8221;<\/span>,&#8230;,V1 \u00a0\u00a0 <em>&lt;&#8211; for urban lines<\/em><br \/>\nU897<span>Z1<\/span>,&#8221;\u010cern\u00fd Most&#8221;,50.10912,14.57713,<span>&#8220;0&#8221;<\/span>,&#8230;,V1\u00a0\u00a0\u00a0\u00a0\u00a0 <em>&lt;&#8211; for suburban lines in zone 0<\/em><br \/>\nU897<span>Z21<\/span>,&#8221;\u010cern\u00fd Most&#8221;,50.10912,14.57713,<span>&#8220;B,1&#8221;<\/span>,&#8230;,V1 <em>&lt;&#8211; for suburban lines in zones B,1<\/em><\/p><\/blockquote>\n<ul>\n<li><em>platform_code<\/em> is the platform code used to identify a platform within a group of stops<\/li>\n<li><em>asw_node_id<\/em> and <em>asw_stop_id<\/em> (the node number and the stop number within the node) together form the stop identifier used in some PID applications and systems<\/li>\n<li><em>zone_region_type<\/em> is a number that enumerates to one of following:\n<ul>\n<li>0 or empty \u2013 is not a public stop for passegers, but a technical waypoint<\/li>\n<li>1 \u2013 the stop is located within city of Prague<\/li>\n<li>2 \u2013 the stop is located within St\u0159edo\u010desk\u00fd kraj<\/li>\n<li>3 \u2013 the stop is located outside of Prague and St\u0159edo\u010desk\u00fd kraj, where PID fare can be used freely<\/li>\n<li>4 \u2013 the stop is located outside of Prague and St\u0159edo\u010desk\u00fd kraj, where PID fare can be used only to travel through stops of <em>zone_region_type<\/em> 1 through 3.<\/li>\n<li>5 \u2013 PID fare cannot be used in this stop<\/li>\n<\/ul>\n<\/li>\n<li>One stop can have multiple records if any of its properties (for example, accessibility or location) changes during the feed.<\/li>\n<\/ul>\n<p><strong>stop_times.txt<\/strong><\/p>\n<ul>\n<li>For train lines, the route also includes waypoints that the trains pass through (to specify the route) &#8211; distinguished by <em>pickup_type<\/em> and <em>drop_off_type<\/em> according to the specification.<\/li>\n<li><em>shape_dist_traveled<\/em> describing the distance from the start on the route always has its counterpart in <em>shapes.txt<\/em> (there is always an entry in <em>shapes.txt<\/em> with identical coordinates) to make it easy to divide the route into intermediate stop segments.<\/li>\n<li><em>trip_operation_type<\/em> distinguishes a regular route (value = 1) from irregular trips and trip parts (value &gt; 1).\n<ul>\n<li>1 = regular service on the route<\/li>\n<li>7 = trip from tram depot to regular route with passengers<\/li>\n<li>8 = trip from regular route to tram depot with passengers<\/li>\n<li>9 = transfer between routes with passengers<\/li>\n<li>10 = transfer to another line with passengers<\/li>\n<li>Explanation: The value is used only for trams, because in other tractions, paths from\/to depot are not public and are proceeded without passengers. Regular connections and connections that leave the depot on their route or enter the depot on their route are managed as regular (operation type = 1). Connections that leave the depot outside their route have operation type = 7 up to the first stop on the route (not inclusive) and then operation type = 1. Connections that leave the route have operation type = 1 up to the last stop on the regular route (not inclusive) and then operation type = 8.<\/li>\n<\/ul>\n<\/li>\n<li><em>bikes_allowed<\/em> determines the possibilities of transporting bicycles on the service at a given stop\n<ul>\n<li>0 = no information about bicycle transportation<\/li>\n<li>1 = bicycle transportation is possible<\/li>\n<li>2 = bicycle transportation is not possible<\/li>\n<li>3 = bicycle transportation is possible, but it is not possible to board or alight with the bicycle at this stop<\/li>\n<li>4 = bicycle transportation is possible or to board with the bicycle, but it is not possible to alight with the bicycle<\/li>\n<li>5 = bicycle transportation is possible or to alight with the bicycle, but it is not possible to board with the bicycle<\/li>\n<\/ul>\n<\/li>\n<li><em>stop_icons<\/em> is a list of two-letter abbreviations defining list of transfers at this stop of this trip. List of possible abbreviations is defined below.<\/li>\n<li><em>headsign_icons<\/em> is a list of two-letter abbreviations defining list of transfers at the end stop of the trip at this stop (defined in <em>stop_headsign<\/em>). List of possible abbreviations is defined below.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>routes.txt<\/strong><\/p>\n<ul style=\"text-align: justify;\">\n<li><em>route_short_name<\/em> corresponds to the public route designation (e.g. &#8220;A&#8221;, &#8220;22&#8221;, &#8220;S9&#8221;, &#8220;P7&#8221;).<\/li>\n<li><em>route_long_name<\/em> corresponds to the licensed route of the line (it does not necessarily have to agree with the real route, for example in the case of a closure!)<\/li>\n<li><em>is_night<\/em> informs whether it is a night line<\/li>\n<li><em>is_regionala<\/em><em>l<\/em> informs whether it is a suburban or regional transport line, i.e. it also or exclusively serves areas outside Prague<\/li>\n<li><em>is_substitute_transport<\/em> informs whether it is a substitute transport line<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>trips.txt<\/strong><\/p>\n<ul style=\"text-align: justify;\">\n<li><em>block_id<\/em> is constructed as the <em>trip_id<\/em> of the first connection in a sequence of connections that connect to each other. See below an example of a connection of line 174, which changes number in Luka stop and continues as a connection of line 301 to Ch\u00fdnice. Only connections where the vehicle continues and passengers do not have to change are connected via <em>block_id<\/em>. Guaranteed connections with a transfer are captured in <em>transfers.txt<\/em>.<\/li>\n<\/ul>\n<blockquote><p>L174,1111100-1,<span>174_17_180509<\/span>,&#8221;Luka&#8221;,0,<span>174_17_180509<\/span>,L174V6,1,2,1,0<br \/>\nL301,1111100-1,301_2_180509,&#8221;O\u0159ech&#8221;,0,<span>174_17_180509<\/span>,L301V1,1,2,1,0<\/p><\/blockquote>\n<ul style=\"text-align: justify;\">\n<li><em>exceptional<\/em> indicates that this is an irregular connection or line. Currently, exceptional = 1 for tram connections from\/to depot and for tourist train lines, otherwise 0.<\/li>\n<li><em>sub_agency_id<\/em> indicates the carrier ID from the <em>route_sub_agencies.txt<\/em> file (<em>sub_agency_id<\/em>). For lines operated by multiple carriers, it is used to distinguish which carrier provides a specific connection.<\/li>\n<li><em>headsign_icons<\/em> is a list of two-letter abbreviations defining list of transfers at the end stop of the trip (defined in\u00a0<em>trip_headsign<\/em>). List of possible abbreviations is defined below.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>calendar.txt<\/strong><\/p>\n<ul style=\"text-align: justify;\">\n<li><em>service_id<\/em> contains a string of seven zeros and ones that indicate when the service runs for each day of the week for better human readability<\/li>\n<li>The validity is always at least 14 days from the date of generation, trains are generated for the entire timetable.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>transfers.txt<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify;\">The file contains guaranteed transfers between connections. A guaranteed transfer is one where the connecting connection is obliged to wait for the arrival of the connecting connection. Typically, this is limited by a limit on how long the connecting connection must arrive to avoid waiting too long. This limit is given in the <em>max_waiting_time<\/em> column.<\/li>\n<\/ul>\n<p><strong>vehicle_allocations.txt,<br \/>\nvehicle_boardings.txt,<br \/>\nvehicle_categories.txt,<br \/>\nvehicle_couplings.txt<br \/>\n<\/strong><\/p>\n<ul>\n<li>Files describing struture of metro trains and assigning carriages to <em>boarding areas<\/em> accorging to Google specification<\/li>\n<li>Used for calculation of optimal carriage for shortest exit path at destination station<\/li>\n<\/ul>\n<p><strong>route_sub_agencies.txt<\/strong><\/p>\n<ul>\n<li>The file contains information about which carrier (company) operates which line.<\/li>\n<li>Columns:\n<ul>\n<li><em>route_id<\/em> is the route ID from <em>routes.txt<\/em><\/li>\n<li><em>route_licence_number<\/em> is the route number in the national information system (CIS) of the Czech Republic [optional column]<\/li>\n<li><em>sub_agency_id<\/em> is the internal ID of the carrier<\/li>\n<li><em>sub_agency_name<\/em> is the name of the carrier operating the given route<\/li>\n<\/ul>\n<\/li>\n<li>If multiple carriers are involved in operating a single line, the file contains multiple records with the same <em>route_id<\/em><\/li>\n<\/ul>\n<p><strong>route_stops.txt<\/strong><\/p>\n<ul>\n<li>The file contains a typical route for a given line and direction<\/li>\n<li>Highly experimental for now<\/li>\n<\/ul>\n<p><strong>List of abbreviations in <em>stop_icons<\/em> and <em>headsign_icons<\/em><\/strong><\/p>\n<table dir=\"auto\" style=\"width: 400px;\" data-sourcepos=\"34:1-47:28\">\n<thead>\n<tr data-sourcepos=\"34:1-34:49\">\n<th style=\"width: 69px;\" data-sourcepos=\"34:2-34:8\">Abbrev.<\/th>\n<th style=\"width: 331px;\" data-sourcepos=\"34:10-34:16\">Meaning<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr data-sourcepos=\"36:1-36:33\">\n<td style=\"width: 69px;\" data-sourcepos=\"36:2-36:3\">Ma<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"36:5-36:23\">Transfer to metro A<\/td>\n<\/tr>\n<tr data-sourcepos=\"37:1-37:33\">\n<td style=\"width: 69px;\" data-sourcepos=\"37:2-37:3\">Mb<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"37:5-37:23\">Transfer to metro B<\/td>\n<\/tr>\n<tr data-sourcepos=\"38:1-38:33\">\n<td style=\"width: 69px;\" data-sourcepos=\"38:2-38:3\">Mc<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"38:5-38:23\">Transfer to metro C<\/td>\n<\/tr>\n<tr data-sourcepos=\"39:1-39:33\">\n<td style=\"width: 69px;\" data-sourcepos=\"39:2-39:3\">Md<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"39:5-39:23\">Transfer to metro D<\/td>\n<\/tr>\n<tr data-sourcepos=\"40:1-40:27\">\n<td style=\"width: 69px;\" data-sourcepos=\"40:2-40:3\">Ra<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"40:5-40:20\">Transfer to train<\/td>\n<\/tr>\n<tr data-sourcepos=\"41:1-41:63\">\n<td style=\"width: 69px;\" data-sourcepos=\"41:2-41:3\">Sb<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"41:5-41:48\">Transfer to S-lines and other train lines<\/td>\n<\/tr>\n<tr data-sourcepos=\"42:1-42:41\">\n<td style=\"width: 69px;\" data-sourcepos=\"42:2-42:3\">Fu<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"42:5-42:30\">Transfer to funicular<\/td>\n<\/tr>\n<tr data-sourcepos=\"43:1-43:31\">\n<td style=\"width: 69px;\" data-sourcepos=\"43:2-43:3\">Fe<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"43:5-43:24\">Transfer to ferry<\/td>\n<\/tr>\n<tr data-sourcepos=\"44:1-44:32\">\n<td style=\"width: 69px;\" data-sourcepos=\"44:2-44:3\">Ap<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"44:5-44:23\">Transfer to airport<\/td>\n<\/tr>\n<tr data-sourcepos=\"45:1-45:29\">\n<td style=\"width: 69px;\" data-sourcepos=\"45:2-45:3\">Tw<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"45:5-45:23\">Transfer to tram<\/td>\n<\/tr>\n<tr data-sourcepos=\"46:1-46:37\">\n<td style=\"width: 69px;\" data-sourcepos=\"46:2-46:3\">Tb<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"46:5-46:25\">Transfer to trolleybus<\/td>\n<\/tr>\n<tr data-sourcepos=\"47:1-47:28\">\n<td style=\"width: 69px;\" data-sourcepos=\"47:2-47:3\">Bu<\/td>\n<td style=\"width: 331px;\" data-sourcepos=\"47:5-47:23\">Transfer to bus<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Example: value\u00a0<em>MaMbRa<\/em> = transfer to metro A and B lines and to train lines.<\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"expandable\">Change history<\/h3><div class=\"expandable-content\"><\/p>\n<h6>17. 12. 2024<\/h6>\n<ul>\n<li>Added <em>boarding areas<\/em> to <em>stops.txt<\/em> and <em>vehicle_allocations.txt, vehicle_boardings.txt, vehicle_categories.txt <\/em>and <em>vehicle_couplings.txt<\/em> files<\/li>\n<\/ul>\n<h6>23. 11. 2024<\/h6>\n<ul>\n<li>Added column <em>zone_region_type<\/em> to <em>stops.txt<\/em><\/li>\n<\/ul>\n<h6>20. 3. 2023<\/h6>\n<ul>\n<li>Added column <em>max_waiting_time<\/em> to <em>transfers.txt<\/em><\/li>\n<\/ul>\n<h6>14. 10. 2022<\/h6>\n<ul>\n<li>Added column <em>sub_agency_id<\/em> to <em>trips.txt<\/em><\/li>\n<\/ul>\n<h6>31. 8. 2021<\/h6>\n<ul>\n<li>Added columns <em>asw_node_id<\/em> and <em>asw_stop_id<\/em> to <em>stops.txt<\/em><\/li>\n<\/ul>\n<h6>25. 6. 2021<\/h6>\n<ul>\n<li>Added column <em>bikes_allowed<\/em> to <em>stop_times.txt<\/em><\/li>\n<li>Removed column <em>trip_operation_type<\/em> in <em>trips.txt<\/em><\/li>\n<\/ul>\n<h6>13. 5. 2021<\/h6>\n<ul>\n<li>Moved column <em>trip_operation_type<\/em> from <em>trips.txt<\/em> to <em>stop_times.txt<\/em><\/li>\n<\/ul>\n<h6>20. 4. 2021<\/h6>\n<ul>\n<li>Added column <em>route_stops.txt<\/em> (does not contain relevant data yet)<\/li>\n<\/ul>\n<h6>4. 3. 2021<\/h6>\n<ul>\n<li>Adding line type information to <em>routes.txt<\/em>: <em>is_regional<\/em> and <em>is_substitute_transport<\/em><\/li>\n<\/ul>\n<h6>15. 12. 2019<\/h6>\n<ul>\n<li>Train loading adjustment\n<ul>\n<li>The entire schedule is now in GTFS (until next December).<\/li>\n<li>Train stations and stops are currently represented by one stop in <em>stops.txt<\/em>.<\/li>\n<li>In <em>stops.txt<\/em>, there are also auxiliary points that are not stops and stations, in <em>stop_times.txt<\/em> there are also records for trains when the train does not stop at the station (for route and time correction &#8211; distinguished by <em>pickup_type<\/em> and <em>drop_off_type<\/em>).<\/li>\n<li><em>trip_short_name<\/em> for train connections corresponds to the public train name (e.g. &#8220;R 670&#8221;).<\/li>\n<li><em>headsign<\/em> for train connections corresponds to the actual station the train is going to (even outside the PID).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h6>29. 10. 2019<\/h6>\n<ul>\n<li>Added files <em>pathways.txt<\/em> and <em>levels.txt<\/em>, which describe the structure of selected metro stations (stations are gradually being added)<\/li>\n<li><em>stops.txt<\/em> may also contain entries of the type <em>Intermediate node<\/em> and <em>Boarding area<\/em>.<\/li>\n<\/ul>\n<h6>24. 6. 2019<\/h6>\n<ul>\n<li>Added <em>level_id<\/em> column to <em>stops.txt<\/em> (not used yet, in the future for integration of Pathways &amp; Levels extension)<\/li>\n<\/ul>\n<h6>6. 1. 2019<\/h6>\n<ul>\n<li>Added metro entrances to <em>stops.txt<\/em><\/li>\n<\/ul>\n<h6>29. 11. 2018<\/h6>\n<ul>\n<li>Added file <em>route_sub_agencies.txt<\/em>, which contains the original information about carriers in the system<\/li>\n<\/ul>\n<h6>20. 11. 2018<\/h6>\n<ul>\n<li>Merged carriers into a common &#8220;PID&#8221; record. Thanks to this, lines operated by multiple carriers could also be merged into one record. At the same time, the <em>original_route_id<\/em> column, which contained the license number of the line, was deleted (now it would be ambiguous)<\/li>\n<li>Added <em>is_night<\/em> column to <em>routes.txt<\/em>, according to which it is possible to recognize a night line<\/li>\n<li>Added <em>trip_operation_type<\/em> column to <em>trips.txt<\/em> (see documentation above)<\/li>\n<li>Night lines related to the previous operating day have departure times up to 30:00, they do not have their own calendar as before.<\/li>\n<\/ul>\n<h6>11. 5. 2018<\/h6>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Adjusted the <em>trip_id<\/em> format to be stable between feeds (the same connection should now have the same ID the next day). <em>trip<\/em><em>_id<\/em> now consists of three parts &#8211; line number, connection number (assigned sequentially) and date of first occurrence<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>v<\/p>\n<ul>\n<li>Adjusted the <em>stop_id<\/em> format &#8211; if a stop changes during the validity of the feed (e.g. renames or changes zone), a record is added whose ID also contains the date of the start of validity of this new record<\/li>\n<li><em>block_id<\/em> is not filled in if there is no transfer from\/to the connection and the connection would be the only one in the block<\/li>\n<li>Adjusted the line colors according to the PID graphic manual<\/li>\n<\/ul>\n<p><\/div>\n<p>&nbsp;<\/p>\n<h3 id=\"h-stops\">PID stop list<\/h3>\n<p style=\"text-align: justify;\">Stop list files provide more detailed information about stop columns that do not fit in the GTFS feed, which also does not allow for data structuring. It is available in XML and JSON formats, which are content-compliant. There is an XML schema for the XML format that describes the format. The individual entities are briefly described below.<\/p>\n<p style=\"text-align: justify;\"><strong>Groupes &lt;group&gt;<br \/>\n<\/strong>A group defines all stops at the same node that have the same name. The unique identifier of the group is the triplet (<em>name, districtCode, isTrain<\/em>), or the pair (<em>idosName, isTrain<\/em>), or the name <em>uniqueName<\/em>.<\/p>\n<ul style=\"text-align: justify;\">\n<li><em>name<\/em> is the common name of the stops in the group. Please note that there may be multiple groups with the same name, see the example below.<\/li>\n<li><em>districtCode<\/em> is the code of the district in which the stop is located.<\/li>\n<li><em>isTrain<\/em> is true if it is a train station. The default value is false.<\/li>\n<li><em>idosName<\/em> is the name used in applications (IDOS etc.)<\/li>\n<li><em>fullName <\/em>is the full name of the stops with abbreviations written out (&#8220;rozc.&#8221; -&gt; &#8220;rozcest\u00ed&#8221; etc.)<\/li>\n<li><em>uniqueName<\/em> is the name of the stops, which is unique within the entire file. It is based on <em>idosName<\/em>, where in case of a collision between a train and a non-train station, the text &#8220;(vlak)&#8221; is added to the train name.<\/li>\n<li><em>node<\/em> is the node number to which the stops belong. Please note that this number is not a unique identifier for the stop name, as one node can contain multiple stops with different names. An example is node <em>237<\/em>, which groups the stops Karlovo n\u00e1m\u011bst\u00ed, Palack\u00e9ho n\u00e1m\u011bst\u00ed, Mor\u00e1\u0148 and Novom\u011bstsk\u00e1 radnice. All these groups of stops have the same node number.<\/li>\n<li><em>avgLat, avgLon, jtskX, jtskY<\/em> is the GPS\/JTSK position aggregated from stops.<\/li>\n<li><em>municipality<\/em> is the name of the city\/municipality in which the stop is located.<\/li>\n<li><em>mainTrafficType<\/em> is type of traffic at the stop (all values listed in XSD schema)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Example 1: Groups of stops named &#8220;Chr\u00e1\u0161\u0165any&#8221; of different types in different districts (selected attributes only)<\/p>\n<blockquote><p>&lt;group <span>name=&#8221;Chr\u00e1\u0161\u0165any&#8221; districtCode=&#8221;RA&#8221; isTrain=&#8221;true&#8221;<\/span> idosName=&#8221;Chr\u00e1\u0161\u0165any&#8221; <span>uniqueName=&#8221;Chr\u00e1\u0161\u0165any&#8221;<\/span> node=&#8221;9520&#8243; avgLat=&#8221;50.1428&#8243; avgLon=&#8221;13.6631536&#8243; municipality=&#8221;Chr\u00e1\u0161\u0165any&#8221;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Chr\u00e1\u0161\u0165any&#8221; districtCode=&#8221;BN&#8221;<\/span> idosName=&#8221;Chr\u00e1\u0161\u0165any (BN)&#8221; <span>uniqueName=&#8221;Chr\u00e1\u0161\u0165any (BN)&#8221;<\/span> node=&#8221;4471&#8243; avgLat=&#8221;49.7927&#8243; avgLon=&#8221;14.5866871&#8243; municipality=&#8221;Chr\u00e1\u0161\u0165any&#8221;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Chr\u00e1\u0161\u0165any&#8221; districtCode=&#8221;KO&#8221;<\/span> idosName=&#8221;Chr\u00e1\u0161\u0165any (KO)&#8221; <span>uniqueName=&#8221;Chr\u00e1\u0161\u0165any (KO)&#8221;<\/span> node=&#8221;2410&#8243; avgLat=&#8221;50.06581&#8243; avgLon=&#8221;14.9295769&#8243; municipality=&#8221;Chr\u00e1\u0161\u0165any&#8221;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Chr\u00e1\u0161\u0165any&#8221; districtCode=&#8221;PZ&#8221;<\/span> idosName=&#8221;Chr\u00e1\u0161\u0165any (PZ)&#8221; <span>uniqueName=&#8221;Chr\u00e1\u0161\u0165any (PZ)&#8221;<\/span> node=&#8221;1190&#8243; avgLat=&#8221;50.0447922&#8243; avgLon=&#8221;14.2591076&#8243; municipality=&#8221;Chr\u00e1\u0161\u0165any&#8221;&gt;<\/p><\/blockquote>\n<p>Example 2: Stop groups at node 237 (selected attributes only)<\/p>\n<blockquote><p>&lt;group <span>name=&#8221;Karlovo n\u00e1m\u011bst\u00ed&#8221; node=&#8221;237&#8243;<\/span> avgLat=&#8221;50.07532&#8243; avgLon=&#8221;14.4185734&#8243;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Mor\u00e1\u0148&#8221; node=&#8221;237&#8243;<\/span> avgLat=&#8221;50.0740242&#8243; avgLon=&#8221;14.41873&#8243;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Novom\u011bstsk\u00e1 radnice&#8221; node=&#8221;237&#8243;<\/span> avgLat=&#8221;50.0774574&#8243; avgLon=&#8221;14.4195213&#8243;&gt;<\/p>\n<p>&lt;group <span>name=&#8221;Palack\u00e9ho n\u00e1m\u011bst\u00ed&#8221; node=&#8221;237&#8243;<\/span> avgLat=&#8221;50.07274&#8243; avgLon=&#8221;14.4144449&#8243;&gt;<\/p><\/blockquote>\n<p style=\"text-align: justify;\"><strong>Stops (stop signs) <\/strong><strong>&lt;stop&gt;<br \/>\n<\/strong>Each group of stops with the same name contains stop signs.<\/p>\n<ul style=\"text-align: justify;\">\n<li><em>id<\/em> is the internal stop identifier <em>node number \/ stop sign number<\/em>. This identifier is unique within the entire file and does not change between file updates. The node number corresponds to the <em>node<\/em> value of the stop group.<\/li>\n<li><em>platform <\/em>is a station code used to identify a column within a group of stops, for example on <a href=\"https:\/\/pid.cz\/en\/stops\/\">departure boards<\/a><\/li>\n<li><em>altIdosName<\/em> is a name that may contain a specification, the purpose of which is to further identify a specific stop sign, see example below<\/li>\n<\/ul>\n<blockquote><p>&lt;group name=&#8221;And\u011bl&#8221; districtCode=&#8221;AB&#8221; idosCategory=&#8221;301003&#8243; <span>idosName=&#8221;And\u011bl&#8221;<\/span> uniqueName=&#8221;And\u011bl&#8221; node=&#8221;1040&#8243;&gt;<br \/>\n&lt;stop id=&#8221;1040\/1&#8243; platform=&#8221;A&#8221; <span>altIdosName=&#8221;And\u011bl (ul. Plze\u0148sk\u00e1)&#8221;<\/span> lat=&#8221;50.07193&#8243; lon=&#8221;14.40363&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/2&#8243; platform=&#8221;B&#8221; <span>altIdosName=&#8221;And\u011bl (ul. Plze\u0148sk\u00e1)&#8221;<\/span> lat=&#8221;50.0719528&#8243; lon=&#8221;14.4028063&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/3&#8243; platform=&#8221;C&#8221; <span>altIdosName=&#8221;And\u011bl (ul. N\u00e1dra\u017en\u00ed)&#8221;<\/span> lat=&#8221;50.071804&#8243; lon=&#8221;14.4042273&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/4&#8243; platform=&#8221;D&#8221; <span>altIdosName=&#8221;And\u011bl (ul. N\u00e1dra\u017en\u00ed)&#8221;<\/span> lat=&#8221;50.0709763&#8243; lon=&#8221;14.40455&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/11&#8243; platform=&#8221;K&#8221; <span>altIdosName=&#8221;And\u011bl&#8221;<\/span> lat=&#8221;50.0717354&#8243; lon=&#8221;14.4019508&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/12&#8243; platform=&#8221;L&#8221; <span>altIdosName=&#8221;And\u011bl (ul. Stroupe\u017enick\u00e9ho)&#8221;<\/span> lat=&#8221;50.0715&#8243; lon=&#8221;14.4029284&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/14&#8243; platform=&#8221;N&#8221; <span>altIdosName=&#8221;And\u011bl (ul. Stroupe\u017enick\u00e9ho)&#8221;<\/span> lat=&#8221;50.0715179&#8243; lon=&#8221;14.4026489&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/101&#8243; platform=&#8221;M1&#8243; <span>altIdosName=&#8221;And\u011bl&#8221;<\/span> lat=&#8221;50.06953&#8243; lon=&#8221;14.4035711&#8243; \/&gt;<br \/>\n&lt;stop id=&#8221;1040\/102&#8243; platform=&#8221;M2&#8243; <span>altIdosName=&#8221;And\u011bl&#8221;<\/span> lat=&#8221;50.070488&#8243; lon=&#8221;14.4048777&#8243; \/&gt;<br \/>\n&lt;\/group&gt;<\/p><\/blockquote>\n<p style=\"text-align: justify;\"><strong>Passing lines &lt;line&gt;<br \/>\n<\/strong>Each stop contains a list of lines that stop there<\/p>\n<ul>\n<li><em>id<\/em> is the numeric line identifier.<\/li>\n<li><em>name<\/em> is the line designation used in relation to passengers<\/li>\n<li><em>type<\/em> is the vehicle type (see XSD for possible values)<\/li>\n<li><em>isNight<\/em> if the value is true, it is a night line<\/li>\n<li><em>direction<\/em> is the most common final stop for connections departing from a given stop<\/li>\n<li><em>direction2<\/em> is an alternative final stop (does not have to be filled in)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3 id=\"h-selling\" style=\"text-align: justify;\">PID sales points<\/h3>\n<p style=\"text-align: justify;\">The files with the list of points of sale contain a detailed description of all registered places where PID fares are purchased, which includes<\/p>\n<ul style=\"text-align: justify;\">\n<li>Ticket machines<\/li>\n<li>Selling points at metro stations<\/li>\n<li>Information centers<\/li>\n<li>Train stations<\/li>\n<li>Transit operator offices<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">The file is available in XML and JSON formats. There is an XML schema for the XML format that describes the format. It is useful to use code lists with texts to display data to users.<\/p>\n<p style=\"text-align: justify;\"><strong>Sales points &lt;point&gt;<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify;\"><em>id<\/em> a unique identifier for the point of sale. It remains the same between file updates, so it can be used for differential updates, for example.<\/li>\n<li style=\"text-align: justify;\"><em>services<\/em> is a bit field of flags of individual services provided by the location. Individual services are listed in the code list.<\/li>\n<li style=\"text-align: justify;\"><em>payMethods<\/em> is a bit field of payment method flags. Specific values \u200b\u200bare given in the code list.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Open data is processed primarily for data analysts and transport application developers. Regularly updated timetables, online information on the locations of connections, as well as data about stops and sale points are available. In addition to being placed here, the datasets are transferred to the Prague opendata portal. The datasets are also processed by the [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":0,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-131727","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/pages\/131727","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/comments?post=131727"}],"version-history":[{"count":44,"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/pages\/131727\/revisions"}],"predecessor-version":[{"id":208869,"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/pages\/131727\/revisions\/208869"}],"wp:attachment":[{"href":"https:\/\/pid.cz\/en\/wp-json\/wp\/v2\/media?parent=131727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}