אז למי שלא יודע ממשלת ישראל אט אט פותחת מידע ציבורי לשימוש הציבור (מפתיע לא?)
או כמו שהם מגדירים תחת אודות באתר Data.gov.il:
מה זה data.gov.il?
data.gov.il מרכז מאגרי נתונים מכלל משרדי הממשלה הפתוחים לשימוש הציבור. האתר מאפשר חיפוש נתונים בקלות וביעילות. המשתמשים ב- data.gov.il מקבלים יד חופשית לפיתוח יישומים ומערכות המבוססות על המידע המפורסם בו וכל עדכון במאגרי המידע באתר מעודכן אוטומטית גם ביישומים המבוססים עליו.
איזה מידע זמין באתר?
כיום ניתן למצוא באתר מאגרי מידע של משרדי ממשלה מרכזיים וכמה רשויות מרכזיות. המאגרים הם בנושא דיור, תחבורה, מזג אוויר, תקציב המדינה ועוד.
אז באמת יש לא מעט מידע באתר חלקו מעודכן יותר וחלקו מעודכן פחות אותנו מטבע הדברים מעניינים היבטים גיאוגרפיים.
כדאי מאוד לשוטט במאגרים מדי פעם ולראות אם יש חומר נוסף מעניין.
בהמשך אני אתן כמה דוגמאות לסקריפטים שניתן להשתמש על מנת לצרוך מידע באופו אוטמטי.
פורמטים של מאגרי מידע
ישנם לא מעט פורמטים של מאגרי המידע השונים שניתן להשתמש בבהם בהיבטים גיאוגרפים
במאגרי המידע נמצא מאגר המידע של מפ”י שמכיל לא מעט מידע של תצלומי אוויר, שכבות שונות (מי ביקש גושים וחלקות ולא קיבל) ומידע נוסף שיכול לעניין. מרבית החומר נמצא בקבצי zip שצריך להוריד.
חלק מהמידע הוא בעצם קישורים למאגרי מידע נוספים כמו למשל קישור למאגר נתוני השירות המטאורולוגי.
הפורמטים הנוספים שקיימים במאגר וכמות המשאבים עפ”י ניתוח שערכתי לככל המידע (נכון ל 1.5.18)
כאשר השונות בשמות הפורמטים מופיע במקור ב API (למשל XLS ו .xls)
Format | Count |
---|---|
.Docx | 1 |
.xls | 3 |
.xlsx | 3 |
.xslx | 1 |
.zip | 5 |
CSV | 113 |
csv,xls,sas | 1 |
dBase | 2 |
DOC | 3 |
DOCX | 55 |
GZ | 2 |
HTML | 16 |
JSON | 21 |
LINK | 1 |
NC | 1 |
83 | |
PPTX | 5 |
RSS | 7 |
sav | 3 |
TXT | 1 |
Web-Service | 1 |
XLS | 573 |
XLSX | 201 |
XML | 267 |
xsd | 2 |
xslx | 1 |
ZIP | 160 |
(blank) | 15 |
גישה ל API
data.gov משתמש ב CKAN API שזהו פורמט נפוץ לניהול מאגרי מידע.
CKAN היא מערכת רבת עוצמה לניהול נתונים שהופכת את הנתונים נגישים לכל על ידי מתן כלים לייעול פרסום, שיתוף, חיפוש ושימוש.
ישנם לא מעט דוגמאות והסברים לגישה ל API כמו למשל דוקמנטציה של CKAN , עמוד הגיטאהב של DataGovIL
סקריפטים
רציתי למצוא דרך לייצא את רשימת כל המשאבים ואת המזהה שלהם וכן לבדוק אילו שדות קיימים לכל מאגר שניתן לבדוק לו את השדות על מנת למצוא נתונים גיאוגרפים (X,Y כתובת וכו’..) הקוד הבא מייצא ל CSV את מאגרי הנתונים עם פירוט על הארגון, שם מאגר, שם משאב, פורמט, מזהה, תאריך עדכון אחרון ותאריך יצירה ניתן כמובן להוציא נתונים נוספים לפי הדקומנטציה של API.
כמו כן אני מייצר קובץ JSON עם שמות השדות במידה ויש.
הסקריפט מתאים לפייתון 3
import urllib import json import requests from datetime import datetime from urllib.request import urlopen import csv import time url='https://data.gov.il/api/action/package_search?rows=1000&start=0' r=requests.get(url).json() dataset=[] dfformats=["CSV","csv",".xls","XLS",".xlsx",".xslx", "XLSX", "XML" ] allF={} for l in range(len(r['result']['results'])): for i in range(len(r['result']['results'][l]['resources'])): title=r['result']['results'][l]['title'] organization=r['result']['results'][l]['organization']['title'] desc=r['result']['results'][l]['resources'][i]['name'] formats=r['result']['results'][l]['resources'][i]['format'] #link=r['result']['results'][l]['resources'][i]['url'] ids=r['result']['results'][l]['resources'][i]['id'] date=r['result']['results'][l]['resources'][i]['last_modified'] createddate=r['result']['results'][l]['resources'][i]['created'] print (title,formats) if str(formats) in dfformats: try: params={'resource_id': ids,'limit': 1000000,} urldf = 'https://data.gov.il/api/action/datastore_search' m = requests.get(urldf, params=params).json() flist=[] allF[ids]=flist for i in range(len(m['result']['fields'])): flist.append((m['result']['fields'][i]['id'])) except: pass dataset.append([organization,title,desc,formats,link,ids,date,createddate]) #dataset.append([organization,title,desc,formats,link,ids,date,createddate,shp]) with open("datagov.csv", 'w', newline='') as f: writer = csv.writer(f) writer.writerows(dataset) with open('field.json', 'w') as fp: json.dump(allF, fp) print("done:",len(dataset))
העלתי את המידע לגוגל דוקס ניתן לראות את כל המאגרים וכן את רשימת השדות במידה וניתן. קישור לקובץ
בתוך גליון השדות ניתן לראות את המאגרים שיש להם מידע גיאוגרפי כל שהוא סמנתי באדום עמודות של X או Y אבל יש כמובן גם וריאציות נוספות.
קריאה של המידע במשאב באמצעות pands data frame
טוב אז מצאתי מאגר שנראה מעניין , ראיתי ברשימת השדות שיש מידע גיאוגרפי כלשהו (או שלא) לא ממש מתחשק לי להוריד את המידע או שסתם בא לי לחפש משהו ספציפי בתוך המידע או מה שבא לכם , הנה דרך פשוטה יחסית לצפות במידע
למשל בדוגמה הבאה אני מעוניין לצפות במאגר של שירות התעסוקה במידע עפ”י יישוב
המזהה של המאגר הוא -342dc551-527c-4148-9c34-4694f005b5be
כמובן שניתן לבצע את כל שאר הפעולות שאפשר עם DataFrame (מדריך קצר )
יצירת מפות
יש כמה דרכים ליצור מפות מ DF אני אדגים כרגע אופציה מהירה דרך jupiter
הפעם השתמשתי במאגר הצימרים מזהה – dfe63ef6-4f86-4cf4-ad5c-3e9a57cecc1f
מפה של ESRI שימוש ב arcgis.gis
המפה כמובן דינמית ניתן ללחוץ על הנקודות ולקבל מידע ועוד ועוד..
(לא הצלחתי להטמיע כך שיראו גם את המפה אז העלתי צילום מסך..)
ישנם עוד דרכים ושימושים שונים למיפוי של DF למשל GeoPandas , BOKEH ועוד…
[elementor-template id="1652"]