Поиск

суббота, 11 января 2020 г.

PROGEORU в VK

Краткая аннотация моего нового проекта на базе платформы VK: progeoru

===================================
Ясно и коротко. Климат и программирование.

Изучаем климат нашей планету. 
Компьютерные науки и технологии помогают нам в этом.
Актуальная научная информация об изменениях климата, новости об общественных инициативах в сфере климата.
О программировании на python как универсальном инструменте анализа данных.

===================================

Скорее всего проект "ICEKING" переедет туда. Насчёт контента здесь пока неясно, так как в планах на 2020 ясно и чётко стоит ряд jupyter notebooks, которые будут опубликованы на GitHub. Какая-то поддержка сохранится, но что именно - неясно. Следите за новостями, более подробно будет в следующем сообщении))


среда, 4 декабря 2019 г.

ICEKING #1

Всем привет!

Так как в последнее время я активно мигрирую от "climate scientist" к "arctic climate scientist", то неплохо бы начать собирать не только классные и полезные заметки про python, который я очень нежно люблю и уважаю (а также гоняю в хвост и гриву), но и что-то про морской лёд, изменения климата в Арктике и перспективы СМП.

Сегодня первая подборка интересных и полезных заметок о морском льде (sea ice).

0) Узучите основы для понимания и исследования #climate data вместе с Climate Data Primer.

1) Начнём с терминологии в теме морского льда: что к чему и как. И не забудем о спутниках (микроволновой радиометрии), которые позволяют нам измерять концентрации льда в любое время суток.

2) На Kaggle есть материал на основе данных sea ice NSIDC. Имя Kaggle говорит само за себя;

3)  Хорошая "базовая" статья  A long-term and reproducible passive microwave sea ice concentration data record for climate studies and monitoring (Peng et al., 2013) по созданию базы данных морского льда от NSIDC.

4) Новости за октябрь о состоянии морского льда в Арктике от NSIDC

5) How to calculate sea ice changes (NASA Video)

6) The Danish Arctic research institutions present updated knowledge on the condition of two major components of the Arctic: The Greenland Ice Sheet and the sea ice

P.S. Подобные посты будут сопровождаться хэштегом iceking и iceking_news.

понедельник, 26 августа 2019 г.

среда, 10 апреля 2019 г.

Набор полезных ссылок


11 апреля 2019

  1. Python Graph Gallery - примеры графики на python;



10 апреля 2019

  1. Прорабатываем навык использования группировки и визуализации данных в Python;
  2. Проект Xarray как подобие pandas от создателей NCL для климатологов;
  3. Dask provides advanced parallelism for analytics, enabling performance at scale for the tools you love;
  4. Введение в аннотации типов Python -> PEPs 484, 526, 3107;
  5. PyPy, Cython, numba
  6. тестирование с помощью pytest, mypy, pylinter и др.

пятница, 29 марта 2019 г.

NCL: pivot to Python

Это свершилось.

NCAR решил отказаться от своего собственного скриптового языка NCAR Command Language в пользу языка Python как основного скриптового инструмента визуализации и анализа данных. Новость несвежая, аж от 6 февраля 2019 года.

Универсальность победила специализацию.

вторник, 5 марта 2019 г.

ERA5

Запрос данных ERA5 о концентрации льда за 00ч за период 1979-2018 гг.

import cdsapi

c = cdsapi.Client()

c.retrieve(
    'reanalysis-era5-single-levels',
    {
        'product_type':'reanalysis',
        'format':'netcdf',
        'variable':'sea_ice_cover',
        'year':[
            '1979','1980','1981',
            '1982','1983','1984',
            '1985','1986','1987',
            '1988','1989','1990',
            '1991','1992','1993',
            '1994','1995','1996',
            '1997','1998','1999',
            '2000','2001','2002',
            '2003','2004','2005',
            '2006','2007','2008',
            '2009','2010','2011',
            '2012','2013','2014',
            '2015','2016','2017',
            '2018'
        ],
        'month':[
            '01','02','03',
            '04','05','06',
            '07','08','09',
            '10','11','12'
        ],
        'day':[
            '01','02','03',
            '04','05','06',
            '07','08','09',
            '10','11','12',
            '13','14','15',
            '16','17','18',
            '19','20','21',
            '22','23','24',
            '25','26','27',
            '28','29','30',
            '31'
        ],
        'time':'00:00'
    },
    'download.nc')

вторник, 4 декабря 2018 г.

Формат файлов JSON

Одним из широко распространённых форматов файлов для обмена данными в сети является текстовый формат json.

JSON позволяет изящно и понятно хранить сложные структуры данных (в т.ч. и последовательности, которые иногда называют массивами) в читабельном виде.

По сути json - это словарь (ассоциативный массив), элементами которых могут быть как словари (отличительный признак - {}, фигурные скобки), так и списки (отличительный признак - [], квадратные).

Пусть дан файл с расширением *.json (это обычный текстовый файл), содержащий следующее:

{
  "orderID": 12345,
  "shopperName": "Иван",
  "shopperEmail": "ivanov@example.com",
  "contents": [
    {
      "productID": 34,
      "productName": "Super product",
      "quantity": 1
    },
    {
      "productID": 56,
      "productName": "Super product",
      "quantity": 3
    }
  ],
  "orderCompleted": true
}

С помощью модуля ... json (неожиданно, неправда ли!?) в python его можно легко считать в словарь (dictionary).

Если в файле содержатся кириллические символы (русские буквы в просторечье), то не забудем вставить encoding="utf-8" в качестве аргумента для open.

Итого код для чтения json-файла выглядит так

import json

f = open('./templates/new.json',  encoding="utf-8")
dic = json.load(f)   # dic - словарь
f.close()

Т.к. dic - это просто словарь, то в него можно добавлять элементы. Добавим список с ключом "alpha". Модифицированный словарь запишем в виде json-файла.
Т.к. в словаре есть кириллица, то не забудем добавить аргумент ensure_ascii=False.

#Чтение, модификация и запись
import json

f = open('./templates/new.json',  encoding="utf-8")
dic = json.load(f)
print(dic.keys())
f.close()

dic['alpha'] = [1, 2, 4, 5]

with open('data.json', 'w') as outfile:
    json.dump(dic, outfile, ensure_ascii=False)