Title: | Data from Japan Meteorological Agency |
Version: | 0.5.2 |
Description: | Includes climate data from Japan Meteorological Agency ('JMA') https://www.jma.go.jp/jma/indexe.html. Can download climate data from 'JMA'. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
RoxygenNote: | 7.2.3 |
Depends: | R (≥ 3.5.0) |
URL: | https://github.com/matutosi/clidatajp https://github.com/matutosi/clidatajp/tree/develop (devel) |
LazyData: | true |
Imports: | curl, dplyr, httr, magrittr, rlang, rvest, stringi, stringr, tibble, tidyr, utils |
Suggests: | ggplot2, knitr, rmarkdown, testthat (≥ 3.0.0) |
VignetteBuilder: | knitr |
Config/testthat/edition: | 3 |
Language: | en-US |
NeedsCompilation: | no |
Packaged: | 2023-03-05 03:49:51 UTC; test |
Author: | Toshikazu Matsumura [aut, cre] |
Maintainer: | Toshikazu Matsumura <matutosi@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2023-03-05 05:00:02 UTC |
Pipe operator
Description
See magrittr::%>%
for details.
Usage
lhs %>% rhs
Arguments
lhs |
A value or the magrittr placeholder. |
rhs |
A function call using the magrittr semantics. |
Value
The result of calling rhs(lhs)
.
Wrapper function to convert into numeric without warnings
Description
Wrapper function to convert into numeric without warnings
Usage
as_numeric_without_warnings(x)
Arguments
x |
A string. |
Value
A numeric or NA.
Choose data with menu.
Description
Choose data with menu.
Usage
choose_with_menu(df, filter_cols, extract = NULL)
Arguments
df |
A dataframe |
filter_cols |
A string or string vector |
extract |
A string |
Value
If extract is NULL, return a dataframe, else return a vector.
Examples
if(interactive()){
data(climate_world)
climate_world <-
climate_world %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
choose_with_menu(climate_world, filter_cols = "continent")
4 # input
choose_with_menu(climate_world, filter_cols = c("continent", "country", "station"))
4 # input
3 # input
2 # input
}
Clean up station information
Description
Helper function for download_climate().
Usage
clean_station(station)
Arguments
station |
A String of station information. |
Value
A tibble including station information.
Examples
data(station_links)
station_links %>%
head(1) %>%
`$`("station") %>%
stringi::stri_unescape_unicode() %>%
clean_station()
Climate data in Japan
Description
Climate data downloaded from Japan Meteorological Agency web pages. URLs of each station are listed in data(station_links). https://www.data.jma.go.jp/gmd/cpd/monitor/nrmlist/
Usage
climate_jp
japan_climate
Format
A data frame with 3768 (157 stations * 12 months * 2 periods) rows and 14 variable:
- no
Station no
- month
Month
- period
Period of observations
- temperature
Mean temperature
- precipitation
Mean precipitation
- snowfall
Mean snowfall
- insolation
Mean insolation
- station
Station name. To avoid duplication, including country name after station name. Can split by "_". Escaped by stringi::stri_escape_unicode().
- country
Country name. Escaped by stringi::stri_escape_unicode().
- latitude
Latitude. (degree)
- NS
North or South.
- longitude
Longitude. (degree)
- WE
West or East.
- altitude
Altitude (m)
An object of class tbl_df
(inherits from tbl
, data.frame
) with 3768 rows and 14 columns.
Examples
library(magrittr)
library(stringi)
library(dplyr)
data(japan_climate)
japan_climate %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
Climate data in the world
Description
Climate data downloaded from Japan Meteorological Agency web pages. URLs of each station are listed in data(station_links). https://www.data.jma.go.jp/gmd/cpd/monitor/nrmlist/
Usage
climate_world
world_climate
Format
A data frame with 41328 (3444 stations * 12 months) rows and 12 variable:
- no
Station no
- continent
Continent. Escaped by stringi::stri_escape_unicode().
- country
Country name. Escaped by stringi::stri_escape_unicode().
- station
Station name. To avoid duplication, including country name after station name. Can split by "_". Escaped by stringi::stri_escape_unicode().
- month
Month
- temperature
Mean temperature
- precipitation
Mean precipitation
- latitude
Latitude. (degree)
- NS
North or South.
- longitude
Longitude. (degree)
- WE
West or East.
- altitude
Altitude (m)
An object of class tbl_df
(inherits from tbl
, data.frame
) with 41328 rows and 12 columns.
Examples
library(magrittr)
library(stringi)
library(dplyr)
data(world_climate)
world_climate %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
Download climate data of the world
Description
For polite scraping, 5 sec interval is set in download_climate(), it takes over 5 hours to get climate data of all stations. Please use existing links by "data(climate_world)", if you do not need to renew climate data. You can see web page as below. https://www.data.jma.go.jp/gmd/cpd/monitor/nrmlist/
Usage
download_climate(url)
Arguments
url |
A String to specify target html. |
Value
A tibble including climate and station information, or NULL when failed.
Examples
# If you want all climate data, remove head().
# The codes take > 5 sec because of poliste scraping.
library(magrittr)
library(stringi)
library(dplyr)
data(station_links)
station_links <-
station_links %>%
dplyr::mutate_all(stringi::stri_unescape_unicode) %>%
head(3) %T>%
{
continent <<- `$`(., "continent")
no <<- `$`(., "no")
} %>%
`$`("url")
climate <- list()
for(i in seq_along(station_links)){
print(stringr::str_c(i, " / ", length(station_links)))
climate[[i]] <- download_climate(station_links[i])
}
# run only when download_climate() successed
if(sum(is.null(climate[[1]]),
is.null(climate[[2]]),
is.null(climate[[3]])) == 0){
month_per_year <- 12
climate_world <-
dplyr::bind_rows(climate) %>%
dplyr::bind_cols(
tibble::tibble(continent = rep(continent, month_per_year))) %>%
dplyr::bind_cols(
tibble::tibble(no = rep(no, month_per_year))) %>%
dplyr::relocate(no, continent, country, station)
climate_world
}
Download links for areas, countries and stations
Description
For polite scraping, 5 sec interval is set in download_links(), it takes about 15 minutes to get all station links. Please use existing links by "data(station_links)", if you do not need to renew links. You can see web page as below. https://www.data.jma.go.jp/gmd/cpd/monitor/nrmlist/
Usage
download_area_links(
url = "https://www.data.jma.go.jp/gmd/cpd/monitor/nrmlist/"
)
download_links(url)
Arguments
url |
A String to specify target html. |
Value
A string vector of url links, or NULL when failed.
Examples
# If you want links for all countries and all sations, remove head().
# The codes take over 5 sec because of poliste scraping.
library(magrittr)
library(stringi)
library(dplyr)
library(tibble)
area_links <- download_area_links()
station_links <- NULL
continent <- NULL
continents <-
c("\\u30a2\\u30d5\\u30ea\\u30ab",
"\\u30a2\\u30b8\\u30a2",
"\\u5357\\u30a2\\u30e1\\u30ea\\u30ab",
"\\u5317\\u4e2d\\u30a2\\u30e1\\u30ea\\u30ab",
"\\u30aa\\u30bb\\u30a2\\u30cb\\u30a2",
"\\u30e8\\u30fc\\u30ed\\u30c3\\u30d1")
area_links <- head(area_links, 1) # for test
for(i in seq_along(area_links)){
print(stringr::str_c("area: ", i, " / ", length(area_links)))
country_links <- download_links(area_links[i])
country_links <- head(country_links, 1) # for test
for(j in seq_along(country_links)){
print(stringr::str_c(" country: ", j, " / ", length(country_links)))
links <- download_links(country_links[j])
station_links <- c(station_links, links)
continent <- c(continent, rep(continents[i], length(links)))
}
}
station_links <- tibble::tibble(url = station_links, continent = continent)
station_links
Graceful fail
Description
Graceful fail
Usage
gracefully_fail(remote_file)
Arguments
remote_file |
A string of remote file. |
Value
An XML document when successed, or invisible NULL when failed.
References
https://gist.github.com/kvasilopoulos/47f24348ed75cdb6365312b17f4b914c
Wrapper function to head 3 items
Description
Wrapper function to head 3 items
Usage
head_3(x)
Arguments
x |
An object. |
Value
An object like x with length 3.
Wrapper function to sleep
Description
Wrapper function to sleep
Usage
sleep(sec = 5)
Arguments
sec |
A numeric to sleep (sec). |
Value
No return value, called for side effects.
Climate stations in Japan
Description
Climate stations in Japan
Usage
station_jp
Format
A data frame with 3444 rows and 4 variable:
- region
Rejon. Escaped by stringi::stri_escape_unicode().
- pref
Prefecture. Escaped by stringi::stri_escape_unicode()
- no
Station no.
- station
Station name. To avoid duplication, including country name after station name. Can split by "_". Escaped by stringi::stri_escape_unicode().
- altitude
Altitude. (m)
- latitude
Latitude. (degree)
- longitude
Longitude. (degree)
- NS
North or South.
- WE
West or East.
- yomi
Pronunciation in Japanese. Escaped by stringi::stri_escape_unicode()
- city
City name. Escaped by stringi::stri_escape_unicode().
Examples
library(magrittr)
library(stringi)
library(dplyr)
data(station_jp)
station_jp %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
Station name and its URL
Description
Station name and its URL
Usage
station_links
Format
A data frame with 3444 rows and 4 variable:
- no
Station no
- station
Station information including no, month, temperature, precipitation, station, country, latitude, NS, longitude, WE, altitude. The information is NOT cleaned Row information downloaded from each URL. Escaped by stringi::stri_escape_unicode().
- url
URL of station.
- continent
Continent. Escaped by stringi::stri_escape_unicode().
Examples
library(magrittr)
library(stringi)
library(dplyr)
data(station_links)
station_links %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
Climate stations of the world
Description
Climate stations of the world
Usage
station_world
Format
A data frame with 3444 rows and 9 variable:
- no
Station no
- station
Station name. To avoid duplication, including country name after station name. Can split by "_". Escaped by stringi::stri_escape_unicode().
- continent
Continent. Escaped by stringi::stri_escape_unicode().
- country
Country name. Escaped by stringi::stri_escape_unicode().
- altitude
Altitude (m)
- latitude
Latitude (degree)
- NS
North or South.
- longitude
Longitude (degree)
- WE
West or East
Examples
library(magrittr)
library(stringi)
library(dplyr)
data(station_world)
station_world %>%
dplyr::mutate_all(stringi::stri_unescape_unicode)
Calculate warm index and cold index
Description
Calculate warm index and cold index
Usage
wi(x)
ci(x)
Arguments
x |
A numeric vector |
Value
A string vector of url links.
References
Kira, T. 1945. A new classification of climate in eastern Asia as the basis for agricultural geography, Hort. Inst. K,yoto Univ., Kyoto. (in Japanese) Warmth Index (WI) and Cold Index (CI) was proposed by Kira (1945), which is known closely related to the distribution of vegetation. Indices can are calculated by following equations. wi = sum (Ti - 5), where wi is Warm index, Ti (celsius) is mean temprature of each month in a year when Ti > 5. Indices can are calculated by following equations. wi = -sum (Ti - 5), where wi is Cold index, when Ti < 5.
Examples
temp <- c(-7.8, -7.2, -2.4, 5.2, 11.7, 16.5, 20.5, 21.1, 15.6, 8.8, 2.0, -4.1)
wi(temp)
ci(temp)
wi <- sum(c(0, 0, 0, 0.2, 6.7, 11.5, 15.5, 16.1, 10.6, 3.8, 0, 0))
ci <- sum(c(12.8, 12.2, 7.4, 0, 0, 0, 0, 0, 0, 0, 3.0, 9.1))