Úkol první: Datové formáty a API

Řešení prvního úkolu v kurzu ISKM55 Nástroje a metody datové analytiky.

I. CSV

Zadání

Navrhnout zápis školního rozvrhu ve formátu CSV.

Výstup
"Kód","Název","Pravidelnost","Den","Datum","Začátek","Konec","Lokace","Místnost"
"ISKM05","Informační politika a management","každý týden","pátek","","10:00","11:40","FF MU","C11"
"ISKM11","Literatura a kulturní areál","každý týden","pátek","","14:00","15:40","FF MU","B2.23"
"ISKM12","Organizace znalostí","každý týden","pátek","","12:00","13:40","FF MU","C11"
"ISKM13","Seminář k diplomové práci III: Tvorba textu","pouze jednou","pondělí","12. 9.","12:00","13:40","FF MU","VP"
"ISKM55","Nástroje a metody datové analytiky","každý týden","středa","","16:00","17:40","FF MU","B2.33"
"ISKM56","Vizualizace dat","každý týden","čtvrtek","","10:00","11:40","FF MU","C11"
"ISKM69","Design v souvislostech","každý týden","čtvrtek","","10:00","11:40","FF MU","C11"
"ISKM82","Systémové myšlení a design","sudý týden","úterý","","16:00","19:40","FaVU VUT","330"
Code language: JavaScript (javascript)

Entitou je pro mě předmět.

Excel si se vzniklým souborem neporadil při běžném otevření, ale až s využitím importovacího nástroje (DataNačíst a transformovat dataZ Text/CSV):

Import CSV do Excelu

II. XML

Zadání

Vizualizovat cestu ze školy domů s využitím formátu XML.

Výstup

Z plánovače tras Mapy.cz jsem exportoval soubor GPX s touto strukturou:

<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="https://mapy.cz/">
	<trk>
		<name>Cesta ze školy domů</name>
		<trkseg>
			<trkpt lat="49.200443" lon="16.598738">
				<ele>231.000000</ele>
			</trkpt>
			<trkpt lat="49.199879" lon="16.598935">
				<ele>229.000000</ele>
			</trkpt>
			<trkpt lat="49.200196" lon="16.601100">
				<ele>227.000000</ele>
			</trkpt>
		</trkseg>
	</trk>
</gpx>
Code language: HTML, XML (xml)

Takto vypadá vizualizace prostřednictvím GPS Visualizer — s použitím podkladu Mapy.cz base map se vlastně neliší od původně vyhledávané trasy:

III. Komunikace se serverem

Zadání

Zjistěte, jak komunikuje iRIS se serverem.

Výstup

Každých 5 sekund posílá klient dotaz na polohu vozů:

Adresa URL požadavku: https://mapa.idsjmk.cz/api/vehicles.json
Metoda žádosti: GET
Stavový kód: 200 
Vzdálená adresa: 85.255.15.250:443
Zásada odkazujícího: strict-origin-when-cross-origin

Získaný soubor vehicles.json má tuto strukturu:

{"LastUpdate":"2022-10-01T17:54:04.829852+02:00","Vehicles":
[{"ID":21684,"IDB":0,"IDC":0,"VType":4,"LType":4,"Lat":49.020218,"Lng":16.017763,"Bearing":225,"LineID":814,"LineName":"814","RouteID":224,"ServiceId":43202,"Course":"43202","LF":true,"Delay":0,"LastStopID":18321,"FinalStopID":18009,"IsInactive":false},
{"ID":21293,"IDB":0,"IDC":0,"VType":4,"LType":4,"Lat":49.308228,"Lng":16.69212,"Bearing":315,"LineID":201,"LineName":"201","RouteID":225,"ServiceId":20102,"Course":"20102","LF":true,"Delay":0,"LastStopID":12225,"FinalStopID":12317,"IsInactive":false},
{"ID":1727,"IDB":0,"IDC":0,"VType":0,"LType":0,"Lat":49.18462,"Lng":16.602547,"Bearing":225,"LineID":8,"LineName":"8","RouteID":4131,"ServiceId":812,"Course":"00812","LF":true,"Delay":0,"LastStopID":1301,"FinalStopID":1616,"IsInactive":false}]}
Code language: JSON / JSON with Comments (json)

Soubor obsahuje:

  • informaci o poslední aktualizaci ("LastUpdate":"2022-10-01T17:54:04.829852+02:00"),
  • seznam Vehiclesinformacemi o jednotlivých vozech,
  • přičemž zásadní jsou parametry ID (číslo vozu), LatLng (souřadnice), LineID (číslo linky) a Course (kurz).

IV. API

Zadání

Vyzkoušejte si libovolné API.

Výstup

Zkusil jsem API Zákony pro lidi prostřednictvím Postman:

Toto konkrétní volání vrací aktuální znění zákona č. 89/2012 Sb., občanského zákoníku, ve formátu JSON:

{
    "Version": "2.x",
    "Base": "https://www.zakonyprolidi.cz",
    "Result": {
        "Batch": {
            "BatchId": 1205422,
            "Code": "2012-33",
            "Collection": "cs",
            "Docs": null,
            "File": "2012c033",
            "Href": "/cs/castka/2012-33",
            "Number": "33",
            "PublishDate": "2012-03-22",
            "Quote": "33/2012 Sb.",
            "Year": 2012
        },
        "DiffVersion": null,
        "Files": [],
        "Fragments": [
            {
                "Anchor": "p1-1",
                "Content": "<var>(1)</var> Ustanovení právního řádu upravující vzájemná práva a povinnosti osob vytvářejí ve svém souhrnu soukromé právo. Uplatňování soukromého práva je nezávislé na uplatňování práva veřejného.",
                "Diff": 0,
                "EffectFrom": null,
                "EffectTill": null,
                "FID": "f4578855",
                "FragId": 4578855,
                "Level": 6,
                "Number": "1",
                "Quote": "§ 1 odst. 1",
                "Struct": 7,
                "Valid": 1
            },
Code language: JSON / JSON with Comments (json)

DocData s použitím parametrů collection (kód sbírky) a document (kód předpisu) vrací aktuální znění předpisu (občanského zákoníku) určité sbírky (Sbírky zákonů ČR).

Dostupné výstupní formáty jsou XML a JSON.