Mysql
 sql >> база данни >  >> RDS >> Mysql

Геолокиране на голям брой публикации въз основа на IP адреси. (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 

5s за 1м IPv4s. 👍🏼

Сега поради еднородността мехурчетата ще бъдат глупаво малки, така че само за този пример ще ги закръглим малко нагоре:

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

Можете да видите какво имам предвид с "твърде еднакво". Но имате "истински" IPv4, така че трябва да сте 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. преминаване от MySQL към PostgreSQL за Ruby on Rails в името на Heroku

  2. mysql_ping виси с Amazon RDS

  3. Не можа да се намери файл mysql-connector-java-5.1.13-bin.jar

  4. Perl DBI fetchall_hashref

  5. org.apache.openjpa.persistence.ArgumentException, докато изпълнявате основния клас