install.packages(c('jsonlite', 'curl')) #устанавливаем пакеты, если они не установлены library(jsonlite) data<-fromJSON('http://botsad.ru/hitem/json/?collectedby=Пименова') # на загрузку данных может потребоваться время data$data http_api_base_url <- 'http://botsad.ru/hitem/json/?' search_parameters <- c('collectedby', 'Пименова', 'identifiedby', 'Крестов') search_url <- paste(http_api_base_url, paste(search_parameters[c(TRUE, FALSE)], search_parameters[c(FALSE, TRUE)], sep='=', collapse='&'), sep='') new_data <- fromJSON(search_url) dim(new_data$data) new_data$data new_data$data$dethistory my_data <- data$data data.frame(table(my_data$family)) library(vegan) diversity(table(my_data$family)) araliaceae_records <- fromJSON('http://botsad.ru/hitem/json/?family=Araliaceae') araliaceae_records export_data <- araliaceae_records$data[,c('id','species_fullname','collectors','latitude','longitude','altitude')] export_data write.csv(export_data, file='araliacea_dataset.csv') search_parameters1 <- c('identifiedby', 'Пименова', 'collectedby', 'Пименова') search_parameters2 <- c('identifiedby', 'Крестов', 'collectedby', 'Крестов') search_url1 <- paste(http_api_base_url, paste(search_parameters1[c(TRUE, FALSE)], search_parameters1[c(FALSE, TRUE)], sep='=', collapse='&'), sep='') search_url2 <- paste(http_api_base_url, paste(search_parameters2[c(TRUE, FALSE)], search_parameters2[c(FALSE, TRUE)], sep='=', collapse='&'), sep='') search_url1 search_url2 dataset1 <- fromJSON(search_url1) dataset2 <- fromJSON(search_url2) df1<-data.frame(dataset1$data) df2<-data.frame(dataset2$data) merged_data <- rbind(df1, df2) dim(df2) dim(df1) dim(merged_data) data_without_dups<-merged_data[!duplicated(merged_data$id),] dim(data_without_dups) library('rgdal') shape_rgdal <- readOGR(dsn=path.expand("/home/dmitry/workspace/herbs/herbs/docs/tutorial/R/ru/sakhalin"), layer="sakhalin") shape_rgdal bbox<-shape_rgdal@bbox as.numeric(bbox) lonl<-as.numeric(bbox)[1] lonu<-as.numeric(bbox)[3] latl<-as.numeric(bbox)[2] latu<-as.numeric(bbox)[4] search_parameters_sakhalin <- c('lonl', lonl, 'lonu', lonu, 'latl', latl, 'latu', latu) search_url_sakhalin <- paste(http_api_base_url, paste(search_parameters_sakhalin[c(TRUE, FALSE)], search_parameters_sakhalin[c(FALSE, TRUE)], sep='=', collapse='&'), sep='') search_url_sakhalin sakhalin_data <- fromJSON(search_url_sakhalin) dim(sakhalin_data$data) number_in_rectangle <- dim(sakhalin_data$data)[1] sprintf("Таким образом, количество точек, принадлежащих прямоугольной области включающей о.Сахалин: %d", number_in_rectangle) library(sp) sakhalin_nonfiltered <- sakhalin_data$data coordinates(sakhalin_nonfiltered) <- cbind(sakhalin_nonfiltered$longitude , sakhalin_nonfiltered$latitude) sakhalin_nonfiltered@proj4string <- CRS(proj4string(shape_rgdal)) sakhalin_filtered<-sakhalin_nonfiltered[shape_rgdal,] dim(sakhalin_filtered) number_in_sakhalin <- dim(sakhalin_filtered)[1] sprintf('Число записей, принадлежащих прямоугольной области, но не принадлежащих контуру о. Сахалин: %d', number_in_rectangle -number_in_sakhalin) sprintf('Дата выполнения кода документа: %s', Sys.Date())