An error occurred while loading the file. Please try again.
-
Grand Francois authored
refs #302
bf090c77
library(here)
library(tools)
source(file.path(dirname(here()), 'init.R'))
# Extraction of data
extract_data = function (filedir, filename) {
data_path = file.path(computer_data_path, filedir, filename)
data = read.table(data_path,
header=TRUE,
na.strings=c('-99.000', '-99'),
sep=';',
skip=41)[,1:2]
return (data=data)
}
# data = extract_data('', 'H5920011_HYDRO_QJM.txt')
# Extraction of information
extract_info = function (filedir, filename) {
data_path = file.path(computer_data_path, filedir, filename)
# General information on station
iStatut = c('0'='inconnu',
'1'='station avec signification hydrologique',
'2'='station sans signification hydrologique',
'3'="station d'essai")
iFinalite = c('0'='inconnue',
'1'="hydrométrie générale",
'2'='alerte de crue',
'3'="hydrométrie générale et alerte de crue",
'4'="gestion d'ouvrage",
'5'='police des eaux',
'6'="suivi d'étiage",
'7'='bassin expérimental',
'8'='drainage')
iType = c('0'='inconnu',
'1'='une échelle',
'2'='deux échelles, station mère',
'3'='deux échelles, station fille',
'4'='débits mesurés',
'5'='virtuelle')
iInfluence = c('0'='inconnue',
'1'='nulle ou faible',
'2'='en étiage seulement',
'3'='forte en toute saison')
iDebit = c('0'='reconstitué',
'1'="réel (prise en compte de l'eau rajoutée ou retirée du bassin selon aménagements)",
'2'='naturel')
iQBE = c('0'='qualité basses eaux inconnue',
'1'='qualité basses eaux bonne',
'2'='qualité basses eaux douteuse')
iQME = c('0'='qualité moyennes eaux inconnue',
'1'='qualité moyennes eaux bonne',
'2'='qualité moyennes eaux douteuse')
iQHE = c('0'='qualité hautes eaux inconnue',
'1'='qualité hautes eaux bonne',
'2'='qualité hautes eaux douteuse')
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
data_path = file.path(computer_data_path, filedir, filename)
infotxt = c(readLines(data_path, n=41))
info = list(code=trimws(substr(infotxt[11], 38, nchar(infotxt[11]))),
nom=trimws(substr(infotxt[12], 39, nchar(infotxt[12]))),
territoire=trimws(substr(infotxt[13], 39, nchar(infotxt[13]))),
L93X=as.numeric(substr(infotxt[16], 38, 50)),
L93Y=as.numeric(substr(infotxt[16], 52, 63)),
surface=as.numeric(substr(infotxt[19], 38, 50)),
statut=iStatut[trimws(substr(infotxt[26], 38, 50))],
finalite=iFinalite[trimws(substr(infotxt[26], 52, 56))],
type=iType[trimws(substr(infotxt[26], 58, 58))],
influence=iInfluence[trimws(substr(infotxt[26], 60, 60))],
debit=iDebit[trimws(substr(infotxt[26], 62, 62))],
QBE=iQBE[trimws(substr(infotxt[26], 72, 72))],
QME=iQME[trimws(substr(infotxt[26], 74, 74))],
QHE=iQHE[trimws(substr(infotxt[26], 76, 76))]
)
return (info=info)
}
# info = extract_info('', 'H5920011_HYDRO_QJM.txt')
# Extraction and dataframing
extract_df = function (filedir, filename) {
if (filename == 'all') {
filelist = c()
for (f in list.files(file.path(filedir))) {
if (file_ext(f) == 'txt') {
filelist = c(filelist, f)
}
}
}
data_path = file.path(computer_data_path, filedir, filename)
info = extract_info(filedir, filename)
df = data.frame(info, data_path=data_path)
return (df)
}
# df = extract_df('', 'H5920011_HYDRO_QJM.txt')