Разделение переменных с помощью оператора климатических данных

Я использовал оператор климатических данных (CDO) для извлечения временных рядов в формате CSV со следующим кодом
cdo -outputtab,date,lon,lat,value -remapnn,lon={}_lat={} input.nc> output.csv
Здесь CSV-файл содержит переменные date, lon, lat и value в одном столбец, как показано ниже.

date lat lon value
1950-01-01 31.57 -85.25 0.05
1950-01-01 31.57 -85.25 0.06
1950-01-01 31.57 -85.25 0.07
.......
.......
2000-01-01 31.57 -85.25 3.01

Как я могу создать столбец для каждой переменной?
Если возможно, я хочу изменить данный код.


person b_takhel    schedule 23.06.2020    source источник
comment
Пожалуйста, покажите, как выглядит результат cdo, когда вы его вызвали - у меня нет программы, и я не могу ничего увидеть. Возможно, захочется использовать для этого предварительно отформатированный блок. Это просто единичный набор выходных данных или серия (как вы говорите, временные ряды) записей даты, долготы, широты и значений?   -  person Stephen P    schedule 23.06.2020
comment
@StephenP Я отредактировал вопрос, так как не смог предоставить таблицу вывода в этом разделе.   -  person b_takhel    schedule 23.06.2020
comment
Также включите требуемый вывод из образца ввода. Словесные описания часто сбивают с толку, тогда как показывать то, что вам нужно, будет легко понять. Удачи.   -  person shellter    schedule 24.06.2020


Ответы (2)


Используйте sed, чтобы превратить пробелы в запятые?

Что-то вроде

cdo -outputtab,date,lon,lat,value -remapnn,lon={}_lat={} input.nc |
  sed 's/[[:space:]]/,/g' > output.csv

(Это также будет работать, если cdo использует табуляцию вместо пробелов для разделения значений).

person Shawn    schedule 23.06.2020

Я не уверен, что это хороший способ ответить самому себе, поскольку я не хочу удалять свой вопрос. Я хочу прикрепить свой ответ, поскольку могу решить, используя следующий код

cdo -outputtab,date,lon,lat,value -remapnn,lon={}_lat={} input.nc | awk 'FNR==1{ row=$2","$3","$4","$5;print row } FNR!=1{ row=$1","$2","$3","$4; print row}' > output.csv

person b_takhel    schedule 23.06.2020