[{"data":1,"prerenderedAt":360},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fatlas":3,"_apollo:default":356,"_apollo:stationEditor":357,"_apollo:feedManagement":358,"_apollo:transferAnalyst":359},{"id":4,"title":5,"body":6,"description":12,"extension":349,"meta":350,"navigation":351,"path":352,"seo":353,"stem":354,"__hash__":355},"content\u002Fdocs\u002Fatlas\u002Findex.md","Transitland Atlas feed registry",{"type":7,"value":8,"toc":340},"minimark",[9,13,29,38,43,46,75,84,88,174,180,188,192,218,221,225,233,246,249,303,315,319],[10,11,12],"p",{},"Transitland Atlas is an open catalog of transit\u002Fmobility data feeds and operators.",[10,14,15,16,23,24,28],{},"This catalog is used to power the canonical ",[17,18,22],"a",{"href":19,"rel":20},"https:\u002F\u002Ftransit.land",[21],"nofollow","Transitland"," platform, is available for distributed used of the ",[17,25,27],{"href":26},"\u002Fdocumentation\u002Ftransitland-lib","transitland-lib"," tooling, and is open to use as a \"crosswalk\" within other transportation data systems.",[10,30,31,32,37],{},"Transitland Atlas is a public GitHub repository filled with JSON files in the ",[17,33,36],{"href":34,"rel":35},"https:\u002F\u002Fgithub.com\u002Ftransitland\u002Fdistributed-mobility-feed-registry",[21],"Distributed Mobility Feed Registry"," format.",[39,40,42],"h2",{"id":41},"feed-specifications-included-in-transitland-atlas","Feed specifications included in Transitland Atlas",[10,44,45],{},"Transitland Atlas catalogs feeds in the following data specifications (specs):",[47,48,49,57,63],"ul",{},[50,51,52],"li",{},[17,53,56],{"href":54,"target":55},"https:\u002F\u002Fgtfs.org\u002Freference\u002Fstatic","_blank","GTFS",[50,58,59],{},[17,60,62],{"href":61,"target":55},"https:\u002F\u002Fgtfs.org\u002Freference\u002Frealtime\u002Fv2\u002F","GTFS Realtime",[50,64,65,70,71],{},[17,66,69],{"href":67,"rel":68},"https:\u002F\u002Fgithub.com\u002FNABSA\u002Fgbfs",[21],"GBFS"," - automatically synchronized from ",[17,72,73],{"href":73,"rel":74},"https:\u002F\u002Fgithub.com\u002FNABSA\u002Fgbfs\u002Fblob\u002Fmaster\u002Fsystems.csv",[21],[76,77,78,79,83],"info",{},"\nTransitland Atlas previously included support for \n",[17,80,82],{"href":81,"target":55},"https:\u002F\u002Fgithub.com\u002Fopenmobilityfoundation\u002Fmobility-data-specification","\nMDS\n","\n feeds, but uptake was so limited that we have removed that functionality.\n",[39,85,87],{"id":86},"how-to-add-a-new-feed","How to Add a New Feed",[89,90,91,126,152,158,161,164,167],"ol",{},[50,92,93,94,98,99,102,103,106,107],{},"Check if a ",[95,96,97],"code",{},".\u002Ffeeds"," file exists with the domain name for the feed URL. (ex. ",[95,100,101],{},"http:\u002F\u002Fbart.gov"," -> ",[95,104,105],{},"bart.gov.dmfr.json",")\n",[47,108,109,112,119],{},[50,110,111],{},"If a file exists, use that file, otherwise create a new empty DMFR file.",[50,113,114,115,118],{},"To create a new file, you can use another ",[95,116,117],{},"dmfr.json"," file as a starting point.",[50,120,121,122,125],{},"Feeds exist as an array in the ",[95,123,124],{},"feeds"," property of a DMFR file.",[50,127,128,129,106,133],{},"Propose a new Onestop ID for the feed (see the ",[17,130,132],{"href":131},"\u002Fdocumentation\u002Fconcepts\u002Fonestop-id-scheme","Onestop ID scheme",[47,134,135,142,145],{},[50,136,137,138,141],{},"Feed Onestop ID's begins with ",[95,139,140],{},"f-"," and continues with a unique string, like the transit operator's name",[50,143,144],{},"Use lowercase, alphanumeric unicode characters  in the name component",[50,146,147,148,151],{},"Use ",[95,149,150],{},"~"," instead of spaces or other punctuation",[50,153,154,155],{},"Add the appropriate URL to ",[95,156,157],{},"static_current",[50,159,160],{},"Add license and\u002For authorization metadata if you are aware of it.",[50,162,163],{},"Open a PR. Feel free to add any questions as a comment on the PR if you are uncertain about your DMFR file.",[50,165,166],{},"GitHub Actions (continuous integration service) will run a basic validation check on your PR and report any errors.",[50,168,169,170],{},"A moderator will review and comment on your PR. If you don't get a response shortly, feel free to ping us at ",[17,171,173],{"href":172},"mailto:hello@transit.land","hello@transit.land",[10,175,176,177,179],{},"If you are using the GitHub web interface, you can click \"Add a file -> Create a new file\" in the ",[95,178,97],{}," directory, or when viewing an individual existing file, the pencil icon in the upper right of the contents display. Make sure to select \"Create a new branch for this commit\" and begin creating a pull request to propose changes.",[10,181,182,183,187],{},"For more information on what can go into a DMFR file, see the ",[17,184,186],{"href":34,"rel":185},[21],"DMFR documentation",".",[39,189,191],{"id":190},"how-to-update-an-existing-feed","How to Update an Existing Feed",[89,193,194,197,215],{},[50,195,196],{},"Find the DMFR file containing the feed.",[50,198,199,200],{},"Update the URLs and other properties for that feed\n",[47,201,202,208],{},[50,203,204,205,207],{},"For static feeds, use ",[95,206,157],{}," for the present URL.",[50,209,210,211,214],{},"Add the previous URL value to the ",[95,212,213],{},"static_historic"," array.",[50,216,217],{},"Edit the file and open the PR as described above.",[10,219,220],{},"Onestop ID values for feeds and operators are used to synchronize with existing values in the Transitland database. Editing the Onestop ID value will cause a new feed or operator record to be created; values in the database that are no longer present in the Transitland Atlas will be marked as soft-deleted. Use caution and clear intent when changing a Onestop ID value.",[39,222,224],{"id":223},"operators","Operators",[10,226,227,228,232],{},"Operators describe, annotate, and group data from different feed data sources. See ",[17,229,231],{"href":230},"\u002Fdocumentation\u002Fconcepts\u002Fagencies-and-operators","agencies and operators"," for what that distinction means. This section covers how to write one in a DMFR file.",[10,234,235,236,238,239,241,242,245],{},"Operators can exist in the top-level ",[95,237,223],{}," property if a DMFR file, or nested within a feed. An operator defined in the top-level ",[95,240,223],{}," property requires an ",[95,243,244],{},"associated_feeds"," value to connect the operator with data sources. When an operator is nested within a feed, there is an implicit association that all GTFS agencies contained in that file are associated with that operator, which helps reduces complexity and maintenance.",[10,247,248],{},"The key properties for an operator are:",[47,250,251,260,269,278,284,290],{},[50,252,253,256,257],{},[95,254,255],{},"onestop_id",": A Onestop ID value for this operator, starting with ",[95,258,259],{},"o-",[50,261,262,265,266],{},[95,263,264],{},"name",": A formal name for the operator, such as ",[95,267,268],{},"Bay Area Rapid Transit",[50,270,271,274,275],{},[95,272,273],{},"short_name",": A simpler, colloqial name for an operator, such as ",[95,276,277],{},"BART",[50,279,280,283],{},[95,281,282],{},"tags",": A set of key,value string pairs that provide additional metadata and references",[50,285,286,289],{},[95,287,288],{},"website",": A URL to find more information about this operator",[50,291,292,294,295,298,299,302],{},[95,293,244],{},": An array of feed association objects; for each entry, ",[95,296,297],{},"feed_onestop_id"," is required and ",[95,300,301],{},"gtfs_agency_id"," is optional",[10,304,305,306,308,309,311,312,314],{},"Values for ",[95,307,255],{}," and ",[95,310,264],{}," are required; ",[95,313,244],{}," (either explicit or through nesting the operator in a feed) are highly recommended.",[39,316,318],{"id":317},"related-documentation","Related documentation",[47,320,321,327,333],{},[50,322,323,326],{},[17,324,325],{"href":131},"Onestop IDs",": the identifier scheme every feed and operator record uses",[50,328,329,332],{},[17,330,331],{"href":230},"Agencies and operators",": how operator records relate to the GTFS agencies they cover",[50,334,335,339],{},[17,336,338],{"href":337},"\u002Fdocumentation\u002Fatlas\u002Fid-crosswalks","ID Crosswalks",": identifiers shared with other transit data systems",{"title":341,"searchDepth":342,"depth":342,"links":343},"",2,[344,345,346,347,348],{"id":41,"depth":342,"text":42},{"id":86,"depth":342,"text":87},{"id":190,"depth":342,"text":191},{"id":223,"depth":342,"text":224},{"id":317,"depth":342,"text":318},"md",{},true,"\u002Fdocs\u002Fatlas",{"title":5,"description":12},"docs\u002Fatlas\u002Findex","KM0D7tJFXsIqJwCzIoT5v8fEzEKuYeK4jDFgCOOx9NQ",{},{},{},{},1790893606877]