Kullanım Örnekleri
Uçtan uca gerçek dünya senaryoları. Her örnek çalıştırılabilir Python kodu içerir.
1. Tekel Analizi — Kişi Kartı Üretimi
Bir device_aid için 30 günlük Kişi Kartı üret ve önemli metrikleri göster.
from mapindata.core import ConfigManager
from mapindata.data import PgClient, DuckDBClient
from mapindata.data.identity import CardStore, PersonCardBuilder
from mapindata.data.poi import CoordinateIdentifier
from mapindata.mobility import FootfallEngine
cfg = ConfigManager()
pg = PgClient(cfg)
duck = DuckDBClient(cfg)
store = CardStore(pg)
ci = CoordinateIdentifier(pg)
engine = FootfallEngine(con=duck.connect(), s3Path=duck.s3Path("istanbul"))
builder = PersonCardBuilder(
footfallEngine=engine,
coordinateIdentifier=ci,
pgClient=pg,
cardStore=store,
)
card = builder.build(deviceId="aaaa-bbbb-cccc-dddd", periodDays=30)
print("Ev Mahallesi :", card["data"]["location_dna"]["home_neighborhood"])
print("Prime Time Oranı :", card["data"]["time_segments"]["prime_time_19_23"])
print("Ziyaret Kategorisi:", card["data"]["top_categories"])
2. Tekel Analizi — Mekan Kartı Üretimi
master.poi'daki bir tekelin 90 günlük Mekan Kartını üret.
from mapindata.data.identity import CardStore, PlaceCardBuilder
store = CardStore(pg)
builder = PlaceCardBuilder(
footfallEngine=engine,
pgClient=pg,
cardStore=store,
)
card = builder.build(poiId="TR_IST_12345", periodDays=90, radiusMeters=200)
print("Benzersiz Ziyaretçi:", card["data"]["visitor_stats"]["total_unique_visitors"])
print("Sadakat Oranı :", card["data"]["visitor_stats"]["loyalty_rate"])
print("Yakın Rakip Sayısı :", card["data"]["neighborhood"]["nearby_competitors"])
print("Tepe Saat Aralığı :", card["data"]["density_analytics"]["peak_hour_window"])
3. Koordinat → POI Tanımlama
Bir GPS noktasını POI kategorisine çevir.
from mapindata.data.poi import CoordinateIdentifier
ci = CoordinateIdentifier(pg)
result = ci.identify(lat=41.0523, lon=29.0128, radiusMeters=20)
print("Mekan Adı :", result["name"])
print("Kategori :", result["primary_category"])
print("Alt Kategori :", result["sub_category"])
print("Ham Tür :", result["raw_type"]) # LLM pipeline için
print("Güven Skoru :", result["confidence_score"])
4. Radius Bazlı Ziyaretçi Sayımı
Bir koordinatın 300 metresinde kaç benzersiz cihaz geçmiş?
from mapindata.mobility import FootfallEngine
engine = FootfallEngine(con=duck.connect(), s3Path=duck.s3Path("istanbul"))
count = engine.getCountByRadius(centerLat=41.0523, centerLon=29.0128, radiusMeters=300)
print(f"Benzersiz ziyaretçi sayısı: {count}")
5. Rakip Analizi
Kadıköy'deki bir "Off-Trade" mekanın 500 metresindeki rakipler ve SES skoru:
from mapindata.analytics import CompetitorAnalysis
ca = CompetitorAnalysis(pg)
result = ca.analyze(lat=40.9901, lon=29.0236, category="Off-Trade", radiusMeters=500)
print("Rakip Sayısı :", result["nearby_competitors"])
print("Yakın Çekicilik :", result["neighboring_attractions"])
print("SES Skoru :", result["ses_score"]) # tablo dolana kadar None
6. Sinyal Zaman Analizi
Ham sinyal DataFrame'inden zaman dilimi dağılımı çıkar:
import pandas as pd
from mapindata.mobility import TimeSegmenter
segmenter = TimeSegmenter()
# signals_df: timestamp (Unix epoch int), device_aid, latitude, longitude, h3_res9_id
result = segmenter.segment(signals_df, period_days=30)
print("Zaman Dilimleri:", result["time_segments"])
print("Aktif Gün Sayısı:", result["activity_metrics"]["unique_days_active"])
print("Frekans Skoru :", result["activity_metrics"]["frequency_score"])