Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To Do #7

Closed
4 of 12 tasks
bananaonthemoon opened this issue May 5, 2020 · 49 comments
Closed
4 of 12 tasks

To Do #7

bananaonthemoon opened this issue May 5, 2020 · 49 comments

Comments

@bananaonthemoon
Copy link
Owner

bananaonthemoon commented May 5, 2020

  • dokończyć r markdown:
  • geogrid
  • poprawić _woj w powiatach
  • cartogram
  • dodać granice polski/województw do cartogram
  • linemap
  • wybrać palety kolorystyczne (to chciałabym obgadać z kimś ze społ-ekon, bo miałam zawsze wpajane, że byle kolorów też nie powinno się wstawiać bo ładnie wygląda? może to się zmienia z nowym pokoleniem)
  • mapdeck
  • tmap_save() jak coś
  • posprawdzać przedziały dopiero potem liczbę klas
  • legend.only
  • https://github.com/neocarto/mapextrud
@Nowosad
Copy link
Collaborator

Nowosad commented May 5, 2020

@bananaonthemoon
Copy link
Owner Author

co trzeba było zrobić, żeby palety kolorów się nie wyświetlały w markdownie?

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

@bananaonthemoon Pani Mario, proszę mi przygotować mały plik .Rmd z problemem.

@bananaonthemoon
Copy link
Owner Author

https://github.com/bananaonthemoon/wybory/blob/master/plik_mk1.Rmd

w międzyczasie znalazłam jeszcze taki błąd? najlepsze jest to, że w starszych plikach (np. z wtorku) tego problemu nie ma i liczy normalnie
https://github.com/bananaonthemoon/wybory/blob/master/plik_mk2.Rmd

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

1:

paleta_blue = get_brewer_pal("Blues", plot = FALSE)

2:
proszę o przesłanie wyniku funkcji sessionInfo() oraz informacji jakie wersje GDAL i PROJ się wyświetlają jak uruchomi Pani library(sf) w czystej sesji R

@bananaonthemoon
Copy link
Owner Author

R version 4.0.0 (2020-04-24)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)

Matrix products: default

locale:
[1] LC_COLLATE=Polish_Poland.1250  LC_CTYPE=Polish_Poland.1250   
[3] LC_MONETARY=Polish_Poland.1250 LC_NUMERIC=C                  
[5] LC_TIME=Polish_Poland.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_4.0.0  htmltools_0.4.0 tools_4.0.0     yaml_2.2.1     
 [5] Rcpp_1.0.4.6    rmarkdown_2.1   knitr_1.28      xfun_0.13      
 [9] digest_0.6.25   rlang_0.4.5     evaluate_0.14 
Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

Okej,
ma Pani pakiet sf w wersji 0.9-2, prawda?

@bananaonthemoon
Copy link
Owner Author

O.O a no, już aktualizuję!

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

Proszę od tego zacząć. Ogólnie wersja 0.9-0 wprowadziła duże zmiany dla wszystkich użytkowników, a następnie wersja 0.9-3 zrobiła dużą aktualizację dla Windowsa (ta wersja chyba jeszcze nie jest dostępna do zainstalowania, ale będzie w ciągu kilku dni)

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented May 7, 2020

no właśnie ciągle mi reinstaluje 0.9-2. po weekendzie zaktualizuję. pytanie tylko czemu w starszych plikach wszystko działało?

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

https://www.youtube.com/watch?v=Va0STgco7-4 - od 14:27 do 27:48

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented May 7, 2020

Obejrzane. Trochę wywrócili świat do góry nogami tymi zmianami (albo w sumie na nogi?). Kod dla geogrid etc. powinien odpowiadać temu co jest w markdownie, czy wystarczy np. jedna zmienna dla województwa?

@Nowosad
Copy link
Collaborator

Nowosad commented May 7, 2020

Chyba nie rozumiem pytania.
Ale w kwestii geogrid to sugerowałbym poeksperymentować z różnymi ustawieniami gridów, wybrać najlepsze ustawienie dla województw, powiatów, itd., następnie zapisać najlepsze ustawienia do plików, a w raportach tylko wczytywać najlepsze ustawienie.

@bananaonthemoon
Copy link
Owner Author

na chwilę obecną przy eksperymentowaniu tworzę wersję robocze .rmd w osobnych folderach (tak, abym potem mogła je sobie porównać) a oryginalne pliki .r zostawiam w spokoju i tylko na poziomie województw... mały bajzel jest.

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented May 13, 2020

sformatowałam dyski (o jak szybko teraz te iteracje lecą) i zainstalowałam wszystko od nowa, sf jest w wersji 0.9-3, ale dalej wyskakuje common_crs(x, y)': coordinate reference systems not equal: use st_transform() first? przy uruchamianiu cartogram_ncont()
wersje gdal i proj linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1

@Nowosad
Copy link
Collaborator

Nowosad commented May 13, 2020

@bananaonthemoon mam prawie te same wersje bibliotek i kod działa bez problemu.
Może spróbować Pani zmienić cache na FALSE? Jak to nie pomoże to proszę o numery wersji sf i cartogram

@bananaonthemoon
Copy link
Owner Author

zmieniłam cache na false i dalej wyskakuje błąd. cartogram 0.2.0 a sf 0.9-3

@bananaonthemoon
Copy link
Owner Author

szkoda, że ta funkcja szwankuje u mnie, może nie mam czegoś zainstalowanego? i tak jeszcze mam do ogarnięcia linemap i rayshader

@Nowosad
Copy link
Collaborator

Nowosad commented May 13, 2020

Pani Mario, to debugujemy dalej:

  1. Proszę wyizolować jeszcze mniejszy kawałek kodu z błędem (pakiety, wczytanie danych, obliczenia, błąd)
  2. Proszę też spróbować użyć wersji tych pakietów z githuba

@bananaonthemoon
Copy link
Owner Author

library(tidyverse)
devtools::install_github("sjewo/cartogram")
library(cartogram)
devtools::install_github("r-spatial/sf")
library(sf)

prez_w = "https://raw.github.com/bananaonthemoon/wybory/master/dane/prez_woj.gpkg"
prez_woj = read_sf(prez_w, stringsAsFactors=FALSE) %>%
  st_transform(crs = 2180)

prez_woj_ncont_duda = cartogram_ncont(prez_woj, "t1.duda")

i dalej błąd.

Błąd w poleceniu 'common_crs(x, y)':
  coordinate reference systems not equal: use st_transform() first?

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented May 13, 2020

o, jest trop!!!! r-spatial/sf#798

@Nowosad
Copy link
Collaborator

Nowosad commented May 13, 2020

remotes::install_github("tidyverse/dplyr") + restart R + test

@bananaonthemoon
Copy link
Owner Author

d z i a ł a !

@bananaonthemoon
Copy link
Owner Author

podejrzewam, że tych poligonów jest po prostu za dużo i dlatego tak wychodzi?
image

@bananaonthemoon
Copy link
Owner Author

nie byłam pewna, czy na mejla wysłać czy tutaj lepiej wrzucić, ale dodałam zarys https://github.com/bananaonthemoon/wybory/blob/master/zarys.Rmd @Nowosad

@bananaonthemoon
Copy link
Owner Author

to całe czyszczenie danych było bez większego sensu... https://wybory.gov.pl/prezydent20200628/pl/dane_w_arkuszach :(

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 24, 2020

Dlaczego? Jest teraz inna struktura?

[Nawiasem mówiąc, na pewno nie było bez sensu, bo się Pani nauczyła dane czyścić]

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 24, 2020

Jest już podział na jednostki administracyjne + frekwencja oraz wyniki w procentach. Wcześniej były tylko dane dla okręgów wyborczych. No dobrze, może nie całkowicie bez sensu :) ale trzeba będzie wyrzucić z połowę kodu przy gminach

@bananaonthemoon
Copy link
Owner Author

jest uno problemo: poczas uruchamiania https://github.com/bananaonthemoon/wybory/blob/master/rmarkdown/rmark_cartogram.Rmd w linii 31 pojawia się błąd:

Evaluation error: IllegalArgumentException: Points of LinearRing do not form a closed linestring.
Wywołania: <Anonymous> ... st_buffer -> st_buffer.sfc -> st_sfc -> CPL_geos_op
Wykonywanie wstrzymane

ale niby wszystko jest ok z geometrią?

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

Jak wygląda wynik działania funkcji st_is_valid() na wejściowych danych?

@bananaonthemoon
Copy link
Owner Author

same true

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

@bananaonthemoon mam teraz małe problemy z moim komputerem do obliczeń. Czy może Pani przygotować i wrzucić tutaj reprex?

@bananaonthemoon
Copy link
Owner Author

library(cartogram)
library(tmap)
library(maptools)
#> Ładowanie wymaganego pakietu: sp
#> Checking rgeos availability: TRUE
library(dplyr)
#> 
#> Dołączanie pakietu: 'dplyr'
#> Następujące obiekty zostały zakryte z 'package:stats':
#> 
#>     filter, lag
#> Następujące obiekty zostały zakryte z 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
library(tmaptools)

prez_w = "https://raw.github.com/bananaonthemoon/wybory/master/dane/prez_woj.gpkg"
prez_woj = read_sf(prez_w, stringsAsFactors=FALSE) %>%
  st_transform(crs = 2180)

st_is_valid(prez_woj)
#>  [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
#> [16] TRUE

# Continuous Area Cartogram
prez_woj_cont_duda = cartogram_cont(prez_woj, "t1_Andrzej.Sebastian.DUDA", 8)
#> Mean size error for iteration 1: 1.40827379474522
#> Mean size error for iteration 2: 1.22526299243185
#> Mean size error for iteration 3: 1.12846581000214
#> Mean size error for iteration 4: 1.07451122846902
#> Mean size error for iteration 5: 1.04364204239174
#> Mean size error for iteration 6: 1.02596073019451
#> Mean size error for iteration 7: 1.01567851305779
#> Mean size error for iteration 8: 1.00948110939182
prez_woj_cont_frek = cartogram_cont(prez_woj, "t1_Frekwencja", 50, threshold = 0.1)
#> Mean size error for iteration 1: 1
#> Error in CPL_geos_op("buffer", x, dist, nQ, numeric(0), logical(0)): Evaluation error: IllegalArgumentException: Points of LinearRing do not form a closed linestring.

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

prez_woj to POLYGON czy MULTIPOLYGON?

@bananaonthemoon
Copy link
Owner Author

polygon

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

Ciekawe - na moim laptopie nie mam tego błędu. Jaką ma Pani wersję pakietu cartogram? Czy próbowała Pani pobrać najnowszą wersję z githuba?

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 25, 2020

Skipping install of cartogram from a github remote, the SHA1 (224876b1) has not changed since last install.

@bananaonthemoon
Copy link
Owner Author

Uaktualniłam też pakiety

@bananaonthemoon
Copy link
Owner Author

chyba odinstaluję i zainstaluję wszystko...

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

Ja mam wersję 0.2.0 cartogram oraz 0.9-5 sf.

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 25, 2020

Też mam takie same wersje. Wcześniej ten błąd się jednak nie pojawiał :( Dobra, będę kombinować

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 25, 2020

OJEZUUU
zrobiłam od nowa .gpkg i wrzuciłam na githuba, przeszło! czemu to się stało, nie wiem, dzisiaj już dobre 3 razy wrzucałam prez_woj.gpkg? anyways, nowy błąd (linia niżej... przy cartogram_ncont)
BŁĄD: Assigned data `*vtmp*` must be compatible with existing data. i Error occurred for column `geom`. x Can't convert <sfc_POLYGON> to <sfc_POLYGON>. x Some attributes are incompatible. i The author of the class should implement vctrs methods. i See <https://vctrs.r-lib.org/reference/faq-error-incompatible-attributes.html>. just my luck

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 25, 2020

Ten error chyba już widziałem z dwa tygodnie temu, ale nie miałem czasu go zgłosić. Niech Pani przygotuje reprex i zgłosi ten błąd na https://github.com/sjewo/cartogram/issues.
Ważne - wcześniej proszę zainstalować wersję developerską pakietu - remotes::install_github("sjewo/cartogram").

@bananaonthemoon
Copy link
Owner Author

Done i done

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 28, 2020

Może trochę głupie pytanie, ale jak połączyć dataframe ze współrzędnymi z geopackage jeśli nie mają wspólnej kolumny?

reprex:

library(tidyverse)
library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1

woj = "https://raw.github.com/bananaonthemoon/wybory/master/dane/prez_woj.gpkg" %>%
  read_sf() %>%
  st_transform(crs = 4326)

woj_longlat = st_coordinates(st_centroid(woj))
#> Warning in st_centroid.sf(woj): st_centroid assumes attributes are constant over
#> geometries of x
#> Warning in st_centroid.sfc(st_geometry(x), of_largest_polygon =
#> of_largest_polygon): st_centroid does not give correct centroids for longitude/
#> latitude data

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 28, 2020 via email

@bananaonthemoon
Copy link
Owner Author

bananaonthemoon commented Jul 28, 2020

W pakiecie mapdeck potrzebne są osobne kolumny z szerokością i długością geograficzną, ja w .gpkg mam tylko w formie geom. No więc kombinuję, ale jedyne co udało mi się zrobić to osobny dataframe z long i lat, ale nie mam możliwości połączenia .gpkg z df, bo zawsze używałam merge, no a tu nie ma jak go użyć.

@Nowosad
Copy link
Collaborator

Nowosad commented Jul 28, 2020

@bananaonthemoon mapdeck nie potrzebuje tych kolumn, jeżeli w argumencie data jest obiekt klasy sf.
(btw: myślę, że lepiej na przyszłość otwierać (i zamykać) nowe issue na githubie z nowymi pytaniami)

@bananaonthemoon
Copy link
Owner Author

Aaaa, ja się głównie opieram na https://symbolixau.github.io/mapdeck/articles/mapdeck.html i nie zauważyłam. Dziękuję!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants