Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New data files and structures #32

Open
mahdishakhesi opened this issue Jan 5, 2025 · 0 comments
Open

New data files and structures #32

mahdishakhesi opened this issue Jan 5, 2025 · 0 comments

Comments

@mahdishakhesi
Copy link

mahdishakhesi commented Jan 5, 2025

Hi guys,

New files at a glance

It would be better if we consider the following files to organize data properly and cover detailed information for the further applications:

  • subway_stations.json includes the list of stations
  • subway_lines.json includes the list of lines
  • graph_all.json a graph of all stations and lines
  • graph_in_use.json a graph of in-use stations and lines
  • create_graph.py a python file to generate graph_all.json and graph_in_use.json based on subway_stations.json and subway_lines.json.

To create the graphs, I suggest to follow JSON Graph Format (JGF).

Linking to OpenStreetMap and knowledge graphs (especially WikiData) enables us to retreive more information and media.

Subway Stations

Each subway station is represented by an Object including the following properties:

  • "label" (String): The name of the station in English
  • "metadata" (Object): The rest of properties

"metadata" itself includes the following properties:

  • "persianName" (String): The name of the station in Persian
  • "lines" (Object): The all connecting subway lines. For each line, consider an Object that includes the followings:
    • "code" (String): Attributed by the company to identify the station on a certain line
    • "openingDate" (String): Mention date in Solar Hijri in YYYY-MM format
    • "state" (String): The valid values are "in use", "under construction", and "temporary closed"
  • "location" (Object): The geospatial properties of the station that includes:
    • "latitude" (String)
    • "longitude" (String)
    • "city" (String)
    • "district" (String): The administrative district where the station is located
    • "nearBy" (Object): Includes the followings; Note that instead of the place names, only wikidataID should be mentioned
      • "way" (Array): Only main streets and highways
      • "intersection" (Array): Any nearby intersection
      • "busStation" (Array): All nearby bus stations
      • "poi" (Array): All nearby points of interest such as measeums, towers, bridges, hospitals, and so on
    • "entrances" (Object): As requested here. For each entrance, consider an Object including "latitude" and "longitude".
    • "descriptiveAddress" (String)
  • "accessibility" (Object): the accessibility state of a station for disabled people:
    • "wheelchairUsers" (Boolean): Whether the station is accessible for wheelchair users or not
    • "blind" (Boolean): Whether the station is accessible for blind people or not
  • "services" (Object): The facilities and services existing in the station that includes:
    • "tickets" (Boolean)
    • "escalators" (Boolean)
    • "atm" (Boolean)
    • "wc" (Boolean)
    • "landf" (Boolean): stands for Lost&Found
    • "elevators" (Boolean)
    • "coffeeShop" (Boolean)
    • "groceryStore" (Boolean)
    • "fastFood" (Boolean)
    • "motherbabyRoom" (Boolean)
    • "chapel" (Boolean)
    • "parking" (Boolean)
  • "sources" (Object): Includes the IDs of the related items on some notable knowledge graphs
    • "wikidataID" (String)
    • "osmNodeID" (String)
    • "freebaseID" (String)
    • "gkgID" (String)
{
    "Tajrish": {
        "label": "Tajrish",
        "metadata": {
            "persianName": "تجریش",
            "lines": {
                "1": {
                    "code": "X1",
                    "openingDate": "1390-11",
                    "state": "in use"
                }
            },
            "location": {
                "latitude": "35.804639",
                "longitude": "51.433556",
                "city": null,
                "district": null,
                "nearBy": {
                    "way": [],
                    "intersection": [],
                    "busStation": [],
                    "poi": []
                },
                "entrances": {
                    "1": {
                        "latitude": null,
                        "longitude": null
                    }
                },
                "descriptiveAddress": "خیابان شریعتی-ضلع جنوب غربی میدان قدس"
            },
            "accessibility": {
                "wheelchairUsers": null,
                "blind": null
            },
            "services": {
                "tickets": null,
                "escalators": null,
                "atm": null,
                "wc": null,
                "landf": null,
                "elevators": null,
                "coffeeShop": null,
                "groceryStore": null,
                "fastFood": null,
                "motherbabyRoom": null,
                "chapel": null,
                "parking": null
            },
            "sources": {
                "wikidataID": "Q5887864",
                "osmNodeID": "2152781392",
                "freebaseID": "/m/0kg14r5",
                "gkgID": null
            }
        },
    ...
}

Subway Lines

Each subway line is represented by an Object including the following properties:

  • "label" (String): The name of the line in English
  • "metadata" (Object): The rest of properties

"metadata" itself includes the following properties:

  • "persianName" (String): The name of the line in Persian
  • "color" (String): The hex color code
  • "logoURL" (String)
  • "state" (String): The valid values are "in use" and "under construction"
  • "wikidataID" (String)
  • "osmRelationID" (String)
  • "gkgID" (String)
  • "branches" (Object): Includes the main branch and others. Each one (Array) is an ordered list of all included stations
{
    "1":{
        "metadata":{
            "label":"Line 1",
            "color":"#d40000",
            "persianName":"خط ۱",
            "wikidataID":"Q20110118",
            "osmRelationID":"7735256",
            "gkgID":"/g/11b6pr7b1y",
            "logoURL":"https://upload.wikimedia.org/wikipedia/commons/a/a0/Tehran_Metro_Line_1.png",
            "state":"in use"
		},
        "branches":{
            "main":[
                "Za'faraniyeh",
                "Tajrish",
                "Gheytariyeh",
                "Shahid Sadr",
                "Gholhak",
                "Doctor Shariati",
                "Mirdamad",
                "Shahid Haghani",
                "Shahid Hemmat",
                "Mosalla Imam Khomeini",
                "Shahid Beheshti",
                "Shahid Mofatteh",
                "Shohada-ye Haftom-e Tir",
                "Ayatollah Taleghani",
                "Darvazeh Dowlat",
                "Sa'adi",
                "Imam Khomeini",
                "Panzdah-e Khordad",
                "Khayyam",
                "Meydan-e Mohammadiyeh",
                "Shoush",
                "Payaneh Jonoub",
                "Shahid Bokharaei",
                "Aliabad",
                "Javanmard-e Ghassab",
                "Shahr-e Rey",
                "Palayeshgah",
                "Shahed - BagherShahr",
                "Haram-e Motahhar-e Imam Khomeini",
                "Kahrizak"
            ],
            "Imam Khomeini Airport":[
                "Shahed - BagherShahr",
                "Namayeshgah-e Shahr-e Aftab",
                "Vavan",
                "Imam Khomeini Airport",
                "Shahr-e Parand"
            ],
            "Zafar":[
                "Shahid Haghani",
                "Shahid Modarres",
                "Zafar"
            ]
        }                   
    },...
}

Graph

{
    "graph": {
        "label": "Tehran Subway Network (all)",
        "type": "Transportation Network",
        "directed": false,
        "nodes": {
            "Tajrish": {
                "label": "Tajrish",
                "metadata": {
                    "persianName": "تجریش",
                    "lines": {
                        "1": {
                            "code": "X1",
                            "openingDate": "1390-11",
                            "state": "in use"
                        }
                    },
                    "location": {
                        "latitude": "35.804639",
                        "longitude": "51.433556",
                        "city": null,
                        "district": null,
                        "nearBy": {
                            "way": [],
                            "intersection": [],
                            "busStation": [],
                            "poi": []
                        },
                        "entrances": {
                            "1": {
                                "latitude": null,
                                "longitude": null
                            }
                        },
                        "descriptiveAddress": "خیابان شریعتی-ضلع جنوب غربی میدان قدس"
                    },
                    "accessibility": {
                        "wheelchairUsers": null,
                        "blind": null
                    },
                    "services": {
                        "tickets": null,
                        "escalators": null,
                        "atm": null,
                        "wc": null,
                        "landf": null,
                        "elevators": null,
                        "coffeeShop": null,
                        "groceryStore": null,
                        "fastFood": null,
                        "motherbabyRoom": null,
                        "chapel": null,
                        "parking": null
                    },
                    "sources": {
                        "wikidataID": "Q5887864",
                        "osmNodeID": "2152781392",
                        "freebaseID": "/m/0kg14r5",
                        "gkgID": null
                    }
                }
            },...
        },
        "edges":[
            {
                "source": "Tajrish",
                "target": "Gheytariyeh",
                "metadata": {
                    "line": "1",
                    "branch": "main"
                }
            },...
        ],
        "metadata": {
            "lines": {
                "1": {
                    "label": "Line 1",
                    "color": "#d40000",
                    "persianName": "خط ۱",
                    "wikidataID": "Q20110118",
                    "osmRelationID": "7735256",
                    "gkgID": "/g/11b6pr7b1y",
                    "logoURL": "https://upload.wikimedia.org/wikipedia/commons/a/a0/Tehran_Metro_Line_1.png",
                    "state": "in use"
                },...
            }
        }
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant