Skip to content

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"])