Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

आईपी ​​​​पते के आधार पर बड़ी संख्या में पदों का भौगोलिक स्थान। (880,000 पंक्तियाँ)

हम कुछ IP पते जनरेट करेंगे, उनका भौगोलिक स्थान निर्धारित करेंगे और उन्हें प्लॉट करेंगे:

library(iptools)
library(rgeolocate)
library(tidyverse)

एक लाख (जिस तरह से समान रूप से वितरित) यादृच्छिक IPv4 पते उत्पन्न करें:

ips <- ip_random(1000000)

और, उनका भौगोलिक स्थान निर्धारित करें:

system.time(
  rgeolocate::maxmind(
    ips, "~/Data/GeoLite2-City.mmdb", c("longitude", "latitude")
  ) -> xdf
)
##    user  system elapsed 
##   5.016   0.131   5.217 

1m IPv4s के लिए 5s।

अब एकरूपता के कारण, बुलबुले छोटे छोटे होंगे, इसलिए इस उदाहरण के लिए हम उन्हें थोड़ा सा गोल कर देंगे:

xdf %>% 
  mutate(
    longitude = (longitude %/% 5) * 5,
    latitude = (latitude %/% 5) * 5
  ) %>%  
  count(longitude, latitude) -> pts

और, उन्हें प्लॉट करें:

ggplot(pts) +
  geom_point(
    aes(longitude, latitude, size = n), 
    shape=21, fill = "steelblue", color = "white", stroke=0.25
  ) +
  ggalt::coord_proj("+proj=wintri") +
  ggthemes::theme_map() +
  theme(legend.justification = "center") +
  theme(legend.position = "bottom")

आप देख सकते हैं कि "बहुत वर्दी" के बारे में मेरा क्या मतलब है। लेकिन, आपके पास "असली" IPv4s हैं, इसलिए आपको gtg होना चाहिए।

scale_size_area() का उपयोग करने पर विचार करें , लेकिन, ईमानदारी से, किसी भू-मानचित्र पर IPv4s की साजिश रचने पर विचार न करें। मैं जीवनयापन के लिए इंटरनेट-पैमाने पर शोध करता हूं और सटीकता के दावे वांछित होने के लिए बहुत कुछ छोड़ देते हैं। मैं शायद ही उस कारण से देश-स्तरीय एट्रिब्यूशन से नीचे जाता हूं (और हम "वास्तविक" डेटा के लिए भुगतान करते हैं)।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pyodbc 64-बिट कैसे स्थापित करें?

  2. mysql सम्मिलित करें यदि अद्वितीय कुंजी के बिना मौजूद नहीं है

  3. एसक्यूएल दो अलग-अलग तालिकाओं से दो कॉलम की तुलना कैसे करें

  4. mysql डंप - कुछ टेबल डेटा को बाहर करें

  5. एक php arya से अपरिभाषित सूचकांक त्रुटि