#install.packages("devtools")
#devtools::install_github("tylermorganwall/rayshader")
#install.packages("Platmap")
library(raster)
## Le chargement a nécessité le package : sp
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
## (status 2 uses the sf package in place of rgdal)
library(ggplot2)
#install.packages("magrittr")
library(magrittr)
##
## Attachement du package : 'magrittr'
## L'objet suivant est masqué depuis 'package:raster':
##
## extract
library(rayshader)
#Chargement des données
library(httr)
library(jsonlite)
#for reading and writing data
library(readr) # to read CSV data
library(openxlsx) # to write to excel file
####----set global variables ----------
kobo_server_url<-"https://https://kc.kobotoolbox.org/"
kc_server_url<-"https://kc.kobotoolbox.org/"
form_id<-1593548 #change the id to your form's id
url<-paste0(kc_server_url,"api/v1/data/",form_id,".csv")
rawdata<-GET(url)
print(paste0("Status Code: ",rawdata$status_code))
## [1] "Status Code: 200"
str(rawdata)
## List of 10
## $ url : chr "https://kc.kobotoolbox.org/api/v1/data/1593548.csv"
## $ status_code: int 200
## $ headers :List of 12
## ..$ date : chr "Fri, 03 Nov 2023 11:21:35 GMT"
## ..$ content-type : chr "application/csv"
## ..$ content-length : chr "3267892"
## ..$ connection : chr "keep-alive"
## ..$ server : chr "nginx"
## ..$ content-disposition : chr "attachment; filename=aRWUi4E7H7zhtamGLKrYR4_2023_11_03.csv"
## ..$ vary : chr "Accept, Origin, Accept-Language, Cookie"
## ..$ allow : chr "GET, POST, PATCH, DELETE, HEAD, OPTIONS"
## ..$ content-security-policy: chr "connect-src 'self' *.google-analytics.com; img-src 'self' data:; script-src 'self' 'unsafe-inline' *.google-ana"| __truncated__
## ..$ content-language : chr "en"
## ..$ x-content-type-options : chr "nosniff"
## ..$ referrer-policy : chr "same-origin"
## ..- attr(*, "class")= chr [1:2] "insensitive" "list"
## $ all_headers:List of 1
## ..$ :List of 3
## .. ..$ status : int 200
## .. ..$ version: chr "HTTP/1.1"
## .. ..$ headers:List of 12
## .. .. ..$ date : chr "Fri, 03 Nov 2023 11:21:35 GMT"
## .. .. ..$ content-type : chr "application/csv"
## .. .. ..$ content-length : chr "3267892"
## .. .. ..$ connection : chr "keep-alive"
## .. .. ..$ server : chr "nginx"
## .. .. ..$ content-disposition : chr "attachment; filename=aRWUi4E7H7zhtamGLKrYR4_2023_11_03.csv"
## .. .. ..$ vary : chr "Accept, Origin, Accept-Language, Cookie"
## .. .. ..$ allow : chr "GET, POST, PATCH, DELETE, HEAD, OPTIONS"
## .. .. ..$ content-security-policy: chr "connect-src 'self' *.google-analytics.com; img-src 'self' data:; script-src 'self' 'unsafe-inline' *.google-ana"| __truncated__
## .. .. ..$ content-language : chr "en"
## .. .. ..$ x-content-type-options : chr "nosniff"
## .. .. ..$ referrer-policy : chr "same-origin"
## .. .. ..- attr(*, "class")= chr [1:2] "insensitive" "list"
## $ cookies :'data.frame': 0 obs. of 7 variables:
## ..$ domain : logi(0)
## ..$ flag : logi(0)
## ..$ path : logi(0)
## ..$ secure : logi(0)
## ..$ expiration: 'POSIXct' num(0)
## ..$ name : logi(0)
## ..$ value : logi(0)
## $ content : raw [1:3267892] 73 74 61 72 ...
## $ date : POSIXct[1:1], format: "2023-11-03 11:21:35"
## $ times : Named num [1:6] 0 0.109 0.3 0.676 2.437 ...
## ..- attr(*, "names")= chr [1:6] "redirect" "namelookup" "connect" "pretransfer" ...
## $ request :List of 7
## ..$ method : chr "GET"
## ..$ url : chr "https://kc.kobotoolbox.org/api/v1/data/1593548.csv"
## ..$ headers : Named chr "application/json, text/xml, application/xml, */*"
## .. ..- attr(*, "names")= chr "Accept"
## ..$ fields : NULL
## ..$ options :List of 2
## .. ..$ useragent: chr "libcurl/8.3.0 r-curl/5.1.0 httr/1.4.7"
## .. ..$ httpget : logi TRUE
## ..$ auth_token: NULL
## ..$ output : list()
## .. ..- attr(*, "class")= chr [1:2] "write_memory" "write_function"
## ..- attr(*, "class")= chr "request"
## $ handle :Class 'curl_handle' <externalptr>
## - attr(*, "class")= chr "response"
d_content <- content(rawdata,"raw",encoding="UTF-8")
d_content_csv <- read_csv(d_content)
## Rows: 6314 Columns: 53
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (47): username, deviceid, phonenumber, Code_producteur, Nom, Pr_nom, Se...
## lgl (2): _tags, _notes
## dttm (3): start, end, _submission_time
## date (1): today
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
d_content_csv <- as.data.frame(d_content_csv)
d_content_csv=d_content_csv[,-c(1:4,6,47:53)]
for (i in 1:length(d_content_csv$deviceid)) {
for (j in 1:length(names(d_content_csv))) {
if (d_content_csv[i,j]=="True")
d_content_csv[i,j]=1
}
}
for (i in 1:length(d_content_csv$deviceid)) {
for (j in 1:length(names(d_content_csv))) {
if (d_content_csv[i,j]=="False")
d_content_csv[i,j]=0
}
}
##Visualisation
table(d_content_csv$Nationalite_du_producteur)
## < table of extent 0 >
length(d_content_csv$Nationalite_du_producteur)
## [1] 0
table(d_content_csv$Sexe)
##
## f_minin masculin n/a
## 667 5509 138
table(d_content_csv$Type_de_document_foncier)
##
## 0
## 25
## 1
## 1
## 2000
## 1
## 99
## 3
## 999
## 127
## accord coutumier
## 7
## Accord coutumier
## 205
## ACCORD COUTUMIER
## 8
## Accord orale juste partagé
## 1
## Accord verbal
## 56
## ACCORD VERBAL
## 2
## Acheter
## 2
## Acte cession villageois
## 1
## Acte de cession
## 33
## Acte de cession égaré
## 1
## Acte de cession introuvable
## 2
## Acte de partage d'une plantation
## 1
## Acte de travail planté partagé et de cession
## 1
## AtAttestation de vende
## 1
## Attention villageoise
## 1
## Attestation
## 7
## Attestation villageoise
## 1
## Attestation cession
## 1
## Attestation de partager
## 1
## Attestation de paye
## 1
## Attestation de plantation
## 5
## Attestation de vende
## 152
## Attestation de vente
## 18
## Attestation villageois
## 14
## Attestation villageois (pas retrouvé)
## 1
## Attestation villageoise
## 252
## ATTESTATION VILLAGEOISE
## 5
## Attestation villageoise écrit
## 1
## ATTESTATION VILLAGEOISE ÉCRIT
## 7
## Attestion de plantation
## 1
## Aucun
## 7
## Aucun document
## 1
## Autorisation coutumière
## 1
## AUTORISATION COUTUMIÈRE
## 68
## AVIS DE RECONNAISSANCE DE TRAVAIL PARTAGÉ
## 1
## Bien familial
## 1
## Blody
## 2
## C'est le champ du défunt grand frère
## 1
## C'est lu qui fair sa plantation
## 1
## C'est son père qui lui a donné le champ il a aucun document
## 1
## C'est un métayer pas encore de document
## 1
## Cadastre
## 2
## Certificat
## 1
## Certificat de plantation
## 2
## Certification de plantation
## 1
## Champ familial partagé aux enfants donc pas de documents à son nom
## 2
## Champ personne mais pas de document
## 1
## Chef du village
## 9
## Comme
## 1
## Convention de travail
## 1
## Convention de vente
## 1
## CONVENTION DE VENTE
## 1
## Convention villageoise
## 4
## Coucou
## 1
## coutumier
## 1
## Coutumier
## 390
## COUTUMIER
## 3
## Coutumière
## 9
## Couturier
## 1
## De parent
## 1
## Document ecrit
## 1
## DOCUMENT ECRIT
## 2
## Document écrit
## 1
## Document écrit à la main mais égaré
## 1
## Document égaré
## 1
## Document familial
## 64
## Document parents
## 1
## Document verbal
## 28
## Documents
## 1
## Documents coutumière
## 1
## Documents égaré
## 19
## Documents introuvable
## 1
## Documents perdus
## 6
## Domaine
## 5
## Domaine familial
## 1
## Domaine familial
## 383
## Domaine familiale
## 56
## Domaine familliale
## 1
## Égaré
## 1
## Elle n'a pas
## 18
## En cour
## 6
## En cours
## 2
## Entre lui et son propriétaire
## 14
## Eritage
## 5
## Eritage de papa
## 1
## Eritage de mon papa
## 1
## Ermitage de son papa
## 2
## Foret
## 1
## Foret de famille
## 1
## Foret de famille
## 128
## Forêt de famille
## 2
## Heritage
## 2
## HERITAGE
## 2
## Héritage
## 5
## Héritage famialle
## 2
## Héritage familial
## 26
## Héritier
## 10
## Héritier le document ne porte pas son nom
## 2
## Héritier le document se trouve avec sa mère qui est au village mais ne porte pas son nom
## 1
## Héritier les documents ne portent pas son nom
## 2
## Il a égaré le document écrit à la main
## 1
## Il a pas encore faire
## 1
## Il est héritier aucun document
## 1
## Il est héritier donc pas de documents à son nom
## 2
## Il est héritier le document ne porte pas son nom
## 3
## Il est héritier le document ne porte pas son nom et se trouve avec sa mère au village
## 1
## Il est héritier le document porte le nom du père
## 1
## Il est métayer le document porte le nom du patron qui est à ABIDJAN
## 1
## Il est métayer le document se trouve avec son patron
## 1
## Il n'a pas
## 25
## Il n'a pas encore faire
## 1
## Il ne retrouve pas
## 1
## Introuvable
## 2
## J'ai acheté la parcelle le document était écrit à la main mais je l'ai égaré
## 1
## La plantation à été partagée aux enfants dont il fait partie il n'a pas de documents
## 1
## Laissez pas son defun mari
## 1
## Laissez pas son defun marie
## 1
## Le champ lui a été confié par son frère
## 1
## Le document a été égaré pendant la guerre
## 1
## Le document n'est pas à sa possession
## 1
## Le document n'est pas en sa possession
## 2
## Lettre
## 3
## Lettre d'attribution villageoise
## 1
## METEYEUR
## 1
## n/a
## 2675
## Napa
## 1
## Néant
## 4
## NEZOBLY
## 1
## No
## 3
## non
## 2
## Non
## 500
## NON
## 1
## Non disponible
## 5
## Non heritage
## 1
## Non héritage
## 1
## Non partage orale
## 1
## Non présenté
## 1
## ORALE
## 1
## Paes de document
## 1
## Papier à mains levée
## 1
## Papiet à mains levé
## 1
## Par de documents
## 4
## Parcelle familiale
## 1
## Partage famialle
## 1
## Pas
## 1
## Pas de documents
## 1
## Pas attestation
## 1
## Pas de
## 1
## Pas de documents
## 7
## pas de document
## 2
## Pas de document
## 238
## Pas de documents
## 236
## PAS DE DOCUMENTS DISPONIBLES
## 1
## Pas de papier
## 7
## Pas disponible
## 3
## PAS DISPONIBLE
## 2
## Pas document
## 1
## Pas documents
## 2
## Pas encore faire
## 20
## Perdu
## 1
## Petit
## 2
## Petit papier
## 65
## Plan cadastre
## 6
## Pour parent
## 1
## PROCES-VERBAL DE CONSTAT DE MISE EN VALEUR D'UNE PORTION DE TERRE RURALE EXPLOITEE A TITRE DE DROIT D'USAGE
## 1
## Procès verbal de constat de mise en valeur d'une portion de terre rurale exploitée à titre de droit d'usage
## 1
## Propre champ
## 2
## PROPRIETAIRE TERRIEN
## 2
## Propriétaire terrien
## 1
## Propriétaire terrain
## 5
## PROPRIETAIRE TERRIEN
## 5
## Propriétaire terrien
## 2
## PROPRIETAIRE TERRIENNE
## 1
## Reçu mais il ne retrouve pas
## 1
## REÇU MAIS PAS DISPONIBLE
## 1
## Rien comme document
## 1
## sa ACCORD COUTUMIER
## 1
## Son prope champ
## 4
## Son prope champ c'est lu même qui a fair sa plantation
## 1
## Tiemesson
## 2
## Travail en cours
## 1
## Un champ familial qui a été partagé aux enfants dc pas de documents
## 2
## Un document établi par la chefferie
## 1
## Vente de forêt
## 1
## Verbal
## 1
## Villageoise
## 147
## Voix orale
## 1
table(d_content_csv$Section)
##
## 0767031064 0787335548 1
## 1 1 3
## 2003 3,29 AM-011
## 1 1 1
## Amanikro AMANIKRO Attestation de vende
## 44 6 1
## AVIONSSO Bakpahi BANCO
## 44 58 20
## Bapkahi Belle ville BELLE VILLE
## 4 1 43
## BEOUA beoue Beoue
## 57 1 94
## Biegon Bigon Blapleu
## 11 1 86
## BLAPLEU Bledy BLEDY
## 12 20 1
## Blody Blolequin Bognonzra
## 128 2 160
## Bohibly BOHIBLY BOUNTA
## 46 17 27
## Cacao Cib Dah
## 11 14 244
## DAH Danielkro Denan
## 26 23 28
## Dewlinke DEWLINKE Diboke
## 1 87 131
## Diehiba DJOUROUTOU Doke
## 208 30 26
## DOKE Doké DOKÉ
## 3 60 1
## DOUANDROU Douedy DOUKOUGOU
## 129 23 1
## G.oplou Gab Gabi
## 1 2 2
## Gabiadji Gabiadji pas Glolpou
## 399 1 2
## Glop.ou Gloplou Grepleu
## 4 129 1
## Grêpleu GRIE 2 GUELEMOU
## 30 46 61
## Guezon GUEZON Guibobly
## 114 1 1
## Kahen Katiala2 Katiola 2
## 205 1 1
## Katiola2 Kdz KDZ
## 126 191 2
## Kehibly Keibli Ko.efla
## 1 52 1
## Konefla KOUDOUGOU M'brakro
## 61 19 76
## Mathiaskro Mbrakro MEDIBLY
## 1 1 12
## n/a Nez Nezobli
## 138 1 119
## Nezobly NEZOBLY Nezobly 1
## 334 102 1
## Niambly NIAMBLY Niyambly
## 106 9 1
## OUEGUIRE OULAHITABLY OULAI TAHIBLY
## 100 56 4
## Oulaitaibly Oulaïtaïbly Pahoubli
## 43 1 93
## PAHOUBLI Pantrokin PANTROKIN
## 1 327 94
## Pas de documents PEHE PETIT BOUAKÉ
## 2 22 4
## PETIT ZEAGLO Pohon POHON
## 20 1 2
## POHON BADOBLY R Remikro
## 59 1 27
## Remise Santa SANTA
## 1 88 14
## Santa 07 Teady TEADY
## 1 159 175
## Tiemesson Tinhou Toazeo
## 178 25 16
## TOAZEO Toui Touih
## 132 6 208
## Touih de Touih touih touih Yankady
## 1 1 22
## YEADY Yorozon Yrozon
## 1 4 19
## ZAÏGOPLEU ZEAGLO ZILEBLY
## 1 18 94
ivoir=d_content_csv[d_content_csv$Nationalite_du_producteur=="IVOIRIENNE",]
burki=d_content_csv[d_content_csv$Nationalite_du_producteur=="BURKINABE ",]
Mali=d_content_csv[d_content_csv$Nationalite_du_producteur=="MALIENNE",]
dim(d_content_csv[d_content_csv$Nationalite_du_producteur=="IVOIRIENNE",])
## [1] 0 41
dim(d_content_csv[d_content_csv$Nationalite_du_producteur=="BURKINABE ",])
## [1] 0 41
dim(d_content_csv[d_content_csv$Nationalite_du_producteur=="MALIENNE",])
## [1] 0 41
ban=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA BANGOLO",]
duek=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA DUEKOUE",]
blole=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA BLOLEQUIN",]
biank=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA BIANKOUMA",]
toul=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA TOULEPLEU",]
gabi=d_content_csv[d_content_csv$Nom_de_la_copperative=="BARA GABIADJI",]
scoopat=d_content_csv[d_content_csv$Nom_de_la_copperative=="SCOOPAT",]
cofuma=d_content_csv[d_content_csv$Nom_de_la_copperative=="COFUMA",]
Neeb=d_content_csv[d_content_csv$Nom_de_la_copperative=="NEEB NONMA",]
Mahl=d_content_csv[d_content_csv$Nom_de_la_copperative=="MAHOL",]
#######
table(ban$Section)
## < table of extent 0 >
#######
dim(table(duek$Section))
## [1] 0
#######
table(blole$Section)
## < table of extent 0 >
#######
table(biank$Section)
## < table of extent 0 >
#######
table(toul$Section)
## < table of extent 0 >
#######
table(gabi$Section)
## < table of extent 0 >
#######
table(scoopat$Section)
## < table of extent 0 >
#######
table(cofuma$Section)
## < table of extent 0 >
#######
table(Neeb$Section)
## < table of extent 0 >
#######
table(Mahl$Section)
## < table of extent 0 >
zone=raster('Précipitation_zone projet.tif')
## Warning in sp::CRS(...): sf required for evolution_status==2L
plot(zone)
elmat = as.matrix(zone)
#We use another one of rayshader's built-in textures:
elmat %>%
sphere_shade(texture = "desert") %>% add_water(detect_water(elmat), color = "desert") %>%
add_shadow(ray_shade(elmat, zscale = 3), 0.5) %>%
add_shadow(ambient_shade(elmat), 0) %>%
plot_3d(elmat, zscale = 10, fov = 0, theta = 135, zoom = 0.75, phi = 45, windowsize = c(1000, 800))
Sys.sleep(0.2)
render_snapshot()