July 04, 2024

Заметки по ходу дела (про 03.07.2024)

3 июля 2024 года

Хотел убедиться, что мне не показалось, и действительно почти на верхушке одного из холмов имеется вода (в прошлом году я обнаружил там узколистный вид ивы, а под ним грязевую лужу). Однако, нынче у нас только-только прошли дожди, и я просто не смог подойти к иве — вокруг почти болото. В наличии воды убедился, да.

Лесная земляника массово созрела, народ активно собирает, весь лес в пенсионерках на машинах. Клубника еще только начинает созревать.

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

На обратном пути попал на концерт некой птицы, записал почти пять минут — один номер из программы. Вероятно, это зеленая пересмешка, но пока не уверен — жду экспертов.

Posted on July 04, 2024 02:53 PM by shikhalev shikhalev | 4 observations | 0 comments | Leave a comment

July 01, 2024

Заметки по ходу дела (про 30.06.2024)

30 июня 2024 года

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

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

Лилия-саранка в хвойном лесу еще только собирается цвести, тогда как в березовом она активно цвела на неделю раньше, а пару дней назад уже отцветала.

Еще один вид папоротника в коллекцию — можно считать, не зря сходил.

Posted on July 01, 2024 02:26 AM by shikhalev shikhalev | 4 observations | 0 comments | Leave a comment

June 27, 2024

Заметки по ходу дела (про 01.06.2024)

1 июня 2024 года

Наконец-то! Поснимал уток[1, 2, 3, 4] на пруду в более-менее приличном количестве и опознаваемом качестве. Вообще, я предполагаю, что там в зарослях и другие виды водятся, но и так уже неплохо.

Лебеди-кликуны надежно зафиксированы и, похоже, всерьез намерены у нас жить. Раньше, по крайней мере, как мне казалось, у нас только шипуны водятся (эти тоже есть, но они не новость).

А удивил больше всего кулик-воробей, не самим фактом наличия, а местом, где он мне встретился — это практически центр поселка, и тем, что не торопился панически скрыться от камеры, как это обычно делают все кулики.

Posted on June 27, 2024 01:40 AM by shikhalev shikhalev | 6 observations | 0 comments | Leave a comment

Заметки по ходу дела (про 04.06.2024)

4 июня 2024 года

Главное впечатление от прогулки было — как будто в середине, если не в начале, мая иду. Очень у нас нынче «малая зима», пришедшая на майские прздники, все затормозила... Многие деревья еще только начали распускать листья.

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

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

И опять же очень близко к людям обнаружилась колония береговушек. Учитывая, что Чекмаш — речушка неширокая, можно было б подойти и существенно ближе, но я не стал доставлять им лишнего беспокойства.

Posted on June 27, 2024 01:16 AM by shikhalev shikhalev | 4 observations | 0 comments | Leave a comment

June 26, 2024

Заметки по ходу дела (про 10.06.2024)

10 июня 2024 года

Довольно скучная прогулка получилась... Но кое-что отметить можно.

Удалось более-менее неплохо снять рябчика. Как и в позапрошлом году, самка нарезала вокруг меня круги, отвлекая от выводка, но в этот раз трава и кусты были пореже.

Обнаружил в лесу несколько молодых дубков (в наблюдении только один), у которых у всех были сухие верхушки выше определенного уровня. Наиболее логичной выглядит версия, что это уровень снега во время сильных морозов... Однако в этом году сильные морозы были в декабре, когда снег должен был быть пониже... Впрочем, тут я могу что-то путать. В других местах такого с дубами я не наблюдал.

Очень интересный сильно пестролистный змеевик большой попался. Для сравнения — того же дня, но в другом месте, совсем не пестролистный.

Posted on June 26, 2024 10:20 PM by shikhalev shikhalev | 3 observations | 0 comments | Leave a comment

Заметки по ходу дела (про 24.06.2024)

Решил оставлять короткие заметки, что нового/интересного заметил на больших прогулках, пока память еще свежая... А лучше бы, конечно, сразу по горячим следам...

24 июня 2024 года

В этот раз было очень сыро, что и неудивительно — у нас буквально сезон дождей случился. Видимо поэтому на каждом грибе сидело по несколько грибных слизней разных размеров. Прямо очень много их было в этот раз.

Впервые встретил лилию-саранку — насколько я понимаю, единственный вид лилий, аборигенный для наших мест.

Ну и, пожалуй, отмечу наблюдение певчего дрозда, где на первом снимке он очень-очень похож на лесного конька — искусственный интеллект именно конька мне выдал первым, но на втором кадре очевидно, что это не конек.

Posted on June 26, 2024 09:52 PM by shikhalev shikhalev | 3 observations | 0 comments | Leave a comment

January 21, 2024

Итоги сезона 2023

Личные итоги года. Некоторые мысли по этому поводу будут позже.

История

# Сезон Все набл. ИС Виды Новые
1   2016 год 40 40 29 29
2   2017 год 67 61 49 43
3   2018 год 31 27 18 12
4   2019 год 32 26 22 10
5   2020 год 235 202 117 84
6   2021 год 673 591 305 214
7   2022 год 563 461 281 110
8   2023 год 1499 1138 445 139
3140 2546 641

Новинки

# Таксон Наблюдения
1  Болотная камышовка (Acrocephalus palustris) #169142632
2  Камышовка-барсучок (Acrocephalus schoenobaenus) #169147363, #169147369, #169153123
3  Длиннохвостая синица (Aegithalos caudatus) #176410077, #176410078, #186258144, #187893310
4  Орел-могильник (Aquila heliaca) #177371673
5  Турухтан (Calidris pugnax) #180730504, #180730507, #180730509, #180730510
6  Обыкновенная пищуха (Certhia familiaris) #174721012, #174748795, #176555900, #176742725
7  Чёрная болотная крачка (Chlidonias niger) #165352606
8  Белоспинный дятел (Dendrocopos leucotos) #168172920, #176736286
9  Малый пёстрый дятел (Dryobates minor) #155584616, #168182028, #175999093, #176428353
10  Зелёная пересмешка (Hippolais icterina) #170589751
11  Восточный соловей (Luscinia luscinia) #162232638, #169147371, #169147372
12  Тетерев (Lyrurus tetrix) #171004899
13  Жёлтая трясогузка (Motacilla flava) #180730886, #183349736
14  Обыкновенная иволга (Oriolus oriolus) #162232643, #175887483, #175887484
15  Пеночка-теньковка (Phylloscopus collybita) #179657778, #179657779, #179658752, #179658753, #179658754, #181514460, #181514462
16  Зелёная пеночка (Phylloscopus trochiloides) #169337052, #174066540
17  Речная крачка (Sterna hirundo) #169162917, #169244678
18  Длиннохвостая неясыть (Strix uralensis) #173558723
19  Черноголовая славка (Sylvia atricapilla) #171019833
20  Крапивник (Troglodytes troglodytes) #176550422, #187891771
21  Заяц-беляк (Lepus timidus) #176407634
22  Обыкновенный крестовик (Araneus diadematus) #183345550
23  Микромата зеленоватая (Micrommata virescens) #178808063
24  Цветочный паук (Misumena vatia) #168172908, #171347831, #173942505, #178808057
25  Пизаура удивительная (Pisaura mirabilis) #163450343
26  Ивовый трехлучевой клещ (Stenacis triradiata) #187897768
27  Лептура рея (Anastrangalia reyi) #168182014
28  Шмель окаймлённый (Bombus patagiatus) #176742722
29  Конёк обыкновенный (Chorthippus brunneus) #175518258
30  Corynis obscura #176515540
31  Лишайница красивая (Cybosia mesomella) #170999121
32  Обыкновенная дубовая орехотворка (Cynips quercusfolii) #177522973
33  Медведица пурпуровая (Diacrisia purpurata) #171009887
34  Жёлтая лишайница (Eilema lutarella) #175900286
35  Зелёный слоник (Eusomus ovulum) #170999089
36  Germaria ruficeps #176740909
37  Клоп итальянский (Graphosoma italicum) #168161731, #168161733, #170437675, #176428327
38  Пяденица малая жёлтая (Idaea serpentata) #173687153
39  Краеглазка большая (Lasiommata maera) #169169520
40  Кровавый краснокрыл (Lygistopterus sanguineus) #168161723, #168161743
41  Шашечница феба (Melitaea phoebe) #169153124, #169244627, #169244636, #169244645
42  Бархатница дриада (Minois dryas) #173636213, #176737847
43  Могильщик-исследователь (Nicrophorus investigator) #175820051
44  Нитекус крестовниковый (Nithecus jacobaeae) #175900284
45  Стрекоза решётчатая (Orthetrum cancellatum) #169153117
46  Олёнка зловонная (Oxythyrea funesta) #168172919, #170512205, #170988053
47  Щитник красноногий (Pentatoma rufipes) #170437681
48  Европейская бумажная оса (Polistes dominula) #178808511
49  Бронзовка медная (Protaetia cuprea) #171004918
50  Конек короткокрылый (Pseudochorthippus parallelus) #168093353
51  Пяденица линейчатая желто-бурая (Scotopteryx chenopodiata) #173685473, #174669341
52  Мертвоед ребристый (Silpha carinata) #170988029, #173654813
53  Ежемуха большая (Tachina grossa) #176453655
54  Тонкопряд лесной (Triodia sylvina) #179954272
55  Оса обыкновенная (Vespula vulgaris) #173636202, #176428336
56  Пестрянка жимолостная (Zygaena lonicerae) #173636182, #173903031, #174714403, #174714405
57  Пестрянка пурпурная восточная (Zygaena minos) #173683858, #173685464
58  Пестрянка горошковая (Zygaena viciae) #170512231, #170988035, #170999086
59  Пихта сибирская (Abies sibirica) #177387099, #177398091
60  Клён американский (Acer negundo) #173907123, #173942512, #174734484, #176485715
61  Клён остролистный (Acer platanoides) #175948189, #182927205
62  Бубенчик лилиелистный (Adenophora liliifolia) #177398083
63  Водосбор обыкновенный (Aquilegia vulgaris) #168217300, #173904896, #176419084
64  Арония мичурина (Aronia mitschurinii) #176412911
65  Подмаренник красильный (Asperula tinctoria) #168182020
66  Астрагал нутовый (Astragalus cicer) #173903037
67  Лебеда стреловидная (Atriplex sagittata) #182927749
68  Берёза пушистая (Betula pubescens) #174730315, #175896748
69  Вейник наземный (Calamagrostis epigejos) #177373389
70  Повой заборный (Calystegia sepium) #169244701
71  Колокольчик жёстковолосистый (Campanula cervicaria) #174743339
72  Василёк луговой (Centaurea jacea) #174743333
73  Ясколка даурская (Cerastium davuricum) #173942526, #176515548
74  Бодяк огородный (Cirsium oleraceum) #176502400
75  Болиголов пятнистый (Conium maculatum) #176502392
76  Змееголовник рюйша (Dracocephalum ruyschiana) #168148773
77  Змееголовник тимьяноцветковый (Dracocephalum thymiflorum) #169244657
78  Хвощ луговой (Equisetum pratense) #168217311
79  Синеголовник плоский (Eryngium planum) #174667231
80  Желтушник ястребинколистный (Erysimum hieraciifolium) #173956501
81  Очанка прямая (Euphrasia stricta) #182923834
82  Пикульник двунадрезанный (Galeopsis bifida) #174714415, #175526121, #176469232
83  Подмаренник душистый (Galium odoratum) #177387107
84  Подмаренник приречный (Galium rivale) #177377915
85  Лилейник оранжевый (Hemerocallis fulva) #175954924
86  Очитник обыкновенный (Hylotelephium telephium) #177522975
87  Троммсдорфия крапчатая (Hypochaeris maculata) #168192253
88  Якобея обыкновенная (Jacobaea vulgaris) #173636190, #175900285, #179508228
89  Можжевельник обыкновенный (Juniperus communis) #173558726, #176422098
90  Таран альпийский (Koenigia alpina) #168217286
91  Латук татарский (Lactuca tatarica) #173654817, #176515571
92  Чина гороховидная (Lathyrus pisiformis) #168043474, #173904898
93  Чина клубненосная (Lathyrus tuberosus) #171004912, #176737846
94  Ряска малая (Lemna minor) #176478346
95  Жимолость татарская (Lonicera tatarica) #176490243, #176490247
96  Дербенник иволистный (Lythrum salicaria) #182923833
97  Мальва приземистая (Malva pusilla) #175518260
98  Люцерна серповидная (Medicago falcata) #168103291, #173671089, #173671076
99  Марьянник луговой (Melampyrum pratense) #173625725
100  Подъельник обыкновенный (Monotropa hypopitys) #175892014
101  Сушеница лесная (Omalotheca sylvatica) #175948166, #176737853
102  Эспарцет виколистный (Onobrychis viciifolia) #173671156
103  Ортилия однобокая (Orthilia secunda) #174699283
104  Недоспелка копьевидная (Parasenecio hastatus) #176502410, #176502412
105  Белокопытник ложный (Petasites spurius) #169147360
106  Двукисточник тростниковидный (Phalaris arundinacea) #176464249
107  Зопник клубненосный (Phlomoides tuberosa) #176453696
108  Плеврозиум шребера (Pleurozium schreberi) #174699274, #186171172
109  Купена душистая (Polygonatum odoratum) #173563446
110  Лапчатка норвежская (Potentilla norvegica) #176485722
111  Редька полевая (Raphanus raphanistrum) #176742721
112  Крыжовник обыкновенный (Ribes uva-crispa) #173948023, #179514390
113  Шиповник иглистый (Rosa acicularis) #177387109
114  Ежевика сизая (Rubus caesius) #176502394
115  Щавель водный (Rumex aquaticus) #173942527
116  Ива пепельная (Salix cinerea) #177373388
117  Ива гмелина (Salix gmelinii) #176740916
118  Ива прутовидная (Salix viminalis) #177375756, #177403936
119  Зорька обыкновенная (Silene chalcedonica) #170448566
120  Смолёвка поникшая (Silene nutans) #168198826, #182927747
121  Золотарник канадский (Solidago canadensis) #180731455
122  Спирея городчатая (Spiraea crenata) #176453680
123  Вяз шершавый (Ulmus glabra) #161954991, #176459019, #177398096, #179514391, #182927206
124  Чемерица лобеля (Veratrum lobelianum) #176515545
125  Вероника ключевая (Veronica anagallis-aquatica) #176478344
126  Фиалка полевая (Viola arvensis) #173650816, #175526116
127  Фиалка дубравная (Viola nemoralis) #173942511
128  Смолка обыкновенная (Viscaria vulgaris) #168139979
129  Дождевик грушевидный (Apioperdon pyriforme) #183343610
130  Опёнок осенний северный (Armillaria borealis) #183345544, #183348146, #183348148, #183348149
131  Белый гриб (Boletus edulis) #183343615
132  Трутовик берёзовый (Fomitopsis betulina) #182924731
133  Ежовик коралловидный (Hericium coralloides) #183345545
134  Ежовик жёлтый (Hydnum repandum) #177387097
135  Pleurocybella porrigens #177387108
136  Вёшенка лёгочная (Pleurotus pulmonarius) #174754529
137  Трифрагмиум таволги (Triphragmium ulmariae) #168161708
138  Моховик зелёный (Xerocomus subtomentosus) #187897766
139  Фулиго гнилостный (Fuligo septica) #176459014

Отчет сгенерирован посредством INat::Get v0.8.0.14

Posted on January 21, 2024 10:00 AM by shikhalev shikhalev | 0 comments | Leave a comment

November 13, 2023

INat::Get — ранняя альфа

— Я зделяль. ©

Итак, прошу любить и жаловать — INat::Get — софтина для по­лу­че­ния и обработки данных с iNaturalist. Основное изначальное пред­наз­на­че­ние — подбивать всякую статистику для про­ек­тов на том же iNaturalist’е, но варианты использования гораздо шире.

Первым делом хочу отметить, что текущее со­сто­я­ние — это ранняя альфа. Я не ре­ко­мен­дую никому этим пользоваться иначе как из любопытства и желания поучаствовать. Тем не ме­нее делаю пост уже сейчас в на­деж­де, что любопытные желающие найдутся. Со сво­ей стороны готов подробно отвечать на во­про­сы и учитывать пожелания.

Зачем?

iNaturalist предоставляет открытый доступ к ог­ром­но­му массиву наблюдений, а также по су­ти к по­сто­ян­но ак­ту­али­зи­ру­ему таксономическому справочнику (тут можно обсуждать нюансы, но для лю­би­тель­с­ких целей это очень хорошие данные). Интерфейс самого сайта не по­кры­ва­ет и, конечно, не мо­жет покрывать все возможные варианты запросов и выборок, но мы можем получить сами данные через механизм выгрузок или посредством открытого API, и второй вариант богаче, гибче и вообще интересней.

В ка­чес­т­ве примера таких отчетов, которые нельзя получить просто из ин­тер­фей­са, приведу свои посты в про­ек­те «Био­раз­но­об­ра­зие Артинского района». Не по­то­му, что они представляют собой что-то особо ценное, а именно как демонстрацию:

Эти посты были сформированы по дан­ным выгрузок, а не API, посредством мною же написанного inat-script, в про­цес­се работы с ко­то­рым (и над ко­то­рым) я осознал все недостатки механизма выгрузок:

  • ограниченность данных;
  • необходимость ручного создания процесса выгрузки и, потом, загрузки файла;
  • и глав­ное — неизвестный заранее срок го­тов­нос­ти — некоторые выгрузки делались вовсе несколько дней.

Кроме того, сам скрипт, как всякий первый блин, требовал существенной переработки для то­го, чтобы удобно внедрять в не­го новые варианты выборок и отчетов, и я решил написать с ну­ля новый инструмент, работающий непосредственно с API.

Принцип действия

На са­мом деле я сначала пытался сделать как-то так, чтобы отчеты формировались через конфигурационные файлы. Однако гибкости в та­ком подходе никакой (ну или потребуется senior-yaml-de­ve­lo­per для ис­поль­зо­ва­ния, ЕВПОЧЯ). В ито­ге пришел к вы­во­ду, что проще предположить в про­д­ви­ну­том пользователе базовые знания Ruby…

В об­щем, программа запускает ruby-скрипты, называемые задачами, которые работают на уров­не абстрактных выборок и списков, оставляя все обращения к API и кэширование ответов под ка­по­том. По боль­шо­му счету пользователь имеет дело (помимо объектов, представляющих собственно данные) с дву­мя классами: DataSet, который представляет собой набор наблюдений, уже отфильтрованный тем или иным образом; и List — по су­ти датасет, сгруппированный по неким объектам, как пра­ви­ло — таксонам.

Для фор­ми­ро­ва­ния вывода имеется специальный объект Table, который сначала определяется, т.е. задаются колонки с за­го­лов­ка­ми, шириной и выравниванием, а затем наполняется данными, которые должны представлять собой массив хэш-таб­лиц… Звучит страшно, но в дей­с­т­ви­тель­нос­ти скрипты могут быть совсем простые. Например, давайте получим список видов в Ар­тин­с­ком районе, которых я никогда не наблюдал.

user = User::by_login 'shikhalev'
place = Place::by_slug 'artinskiy-gorodskoy-okrug-osm-2023-sv-ru'

user_dataset = select user_id: user.id
place_dataset = select place_id: place.id

user_list = user_dataset.to_list
place_list = place_dataset.to_list

result_list = place_list - user_list

result_table = table do
  column '#', width: 3, align: :right, data: :line_no
  column 'Таксон', data: :taxon
  column 'К-во набл.', width: 6, align: :right, data: :count
end

result_rows = result_list.map { |ds| { taxon: ds.object, count: ds.count } }

result_table << result_rows

File.write 'notmy.htm', result_table.to_html

Файл я поместил в каталог примеров под именем notmy.inat, теперь мы можем его запустить командой:

$ inat-get notmy.inat

И через некоторое время получим результат.

Результат можно увидеть в мо­ем посте на iNa­tu­ra­list. Да, на дан­ный момент, все форматирование рассчитано именно и только на пос­ты в iNat, активно используя тамошние стили. Есть планы расширить данный момент, но об этом позже.

Что важно, если мы тут же запустим ту же команду, то результат получим практически мгновенно, причем идентичный. А ес­ли выждем сутки, то некоторое дополнительное время понадобится, но существенно меньшее, чем при пер­вом запуске. Это первый ключевой мо­мент — данные кэшируются.

Кроме того, следует обратить внимание на то, что на са­мом-то деле API отдает не бо­лее 200 наб­лю­де­ний за один запрос. Здесь же этого ограничения мы не ви­дим и работаем с пол­ны­ми да­та­се­та­ми (объемом 3k+ и 4k+) — организация последовательной постраничной загрузки так же находится под капотом.

Некоторые детали

  • Метод select выполняет запрос и возвращает объект класса DataSet. Именованные параметры данного метода примерно соответствуют параметрам API, правда, реализованы не все.

  • Класс DataSet инкапсулирует набор наблюдений, плюс опционально ассоциирует его с не­ко­то­рым объектом. В ос­нов­ном его поведение определяется включенным модулем Enumerable, и бинарными операциями:

    • | — объединение;
    • & — пересечение;
    • - — разность.

    Также у класса DataSet имеется важный метод to_list, который создает объект класса List, группируя наблюдения по то­му или иному параметру. Для груп­пи­ров­ки используется proc-объ­ект, который должен выдавать по на­блю­де­нию собственно ключ группировки. Наиболее полезные (на мой взгляд) группировки уже определены как константы модуля Listers:

    • Listers::SPECIES возвращает таксон, «приведенный к ви­ду». В ка­выч­ках потому, что результатом может быть как вид, так и гибрид или комплекс.
    • Listers::YEAR возвращает год.
    • И так далее.

    Если вызвать to_list без параметров, то по умол­ча­нию будет использован Listers::SPECIES.

  • Класс List представляет собой список датасетов с ас­со­ци­и­ро­ван­ны­ми значениями. Также реализует модуль Enumerable, только итерируемыми элементами будут объекты класса DataSet, а не Observation. Для спис­ков также определены некоторые бинарные операции:

    • + — объединение;
    • * — пересечение;
    • - — разность (что и использовано в примере).

    Объединенный датасет из списка можно получить посредством метода to_dataset.

  • Классы данных: Observation, Taxon, Place, User и так далее предоставляют собственно данные. Свойств там много, их следует от­до­ку­мен­ти­ро­вать, но пока руки не до­шли. Впрочем, это тот случай, когда код действительно является документацией, так что см. ка­та­лог entity.

    Отмечу, что все они имеют метод класса by_id для по­лу­че­ния соответствующего объекта, и в до­пол­не­ние классы Place и Project имеют метод by_slug, а класс User — метод by_login.

Установка

Установка максимально проста:

# gem install inat-get

Правда, на дан­ный момент все это гарантированно работает только под Li­nux. Тестирование под Win­dows в пла­нах есть, но скорее ближе к весне.

Планы

Вообще, на гит­ха­бе есть такой замечательный раздел «Issues», где можно посмотреть процесс планирования в ре­аль­ном времени. Здесь постараюсь дать сводную картину.

К версии 1.0

Документация

На первом этапе — полноценное руководство пользователя на рус­с­ком языке. Затем расширенное руководство как на рус­с­ком, так и на ан­г­лий­с­ком.

Данные

Сейчас многие поля, в том числе такие важные, как охранный статус, просто игнорируются. Это категорически неправильно и, естественно, будет исправлено уже в бе­та-вер­сии.

Сю­да же отнесу поддержку всех ключей запроса доступных в API. Тут есть некоторые нюансы, которые следует продумать, почему собственно на дан­ном этапе их и нет, но все решаемо.

Доделки и исправления

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

Есть запланированная, но пока нереализованная базовая функциональность, такая как чистка устаревших данных.

Оптимизация запросов

Есть мысли, как можно уменьшить количество запросов к API, что существенно ускорит работу в целом.

Дальнейшее развитие

Разнообразные возможности вывода

Тут с од­ной стороны, явно нужно сделать поддержку не толь­ко упрощенной разметки, используемой в жур­на­лах iNa­tu­ra­list, но и форматов, которые можно использовать в раз­лич­ных местах независимо.

С другой стороны, на­до бы добавить что-то типа вывода иерархических списков, а возможно и каких-то еще вариантов оформления.

Все это пока на уров­не исследования и формулирования задачи.

Оптимизация кэширования

Подробно расписывать не бу­ду, но там есть над чем работать. В пер­вую очередь это касается разбора и трансляции условий проектов.

Обратная связь

Буду рад вопросам, замечаниям и предложениям, как в ком­мен­та­ри­ях к это­му посту, так и в со­от­вет­с­т­ву­ю­щем разделе на Git­Hub. Можно так же писать в лич­ные сообщения на iNa­tu­ra­list, хотя предпочтительно все же общаться в от­кры­тых комментариях, чтобы не воз­ни­ка­ло дублирования.

Posted on November 13, 2023 09:43 AM by shikhalev shikhalev | 2 comments | Leave a comment

November 12, 2023

Кого я еще не видел у нас здесь...

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

Виды, наблюдавшиеся в Артинском районе, которые ни разу не попадались мне

# Таксон К-во набл.
1  Ястреб-тетеревятник (Accipiter gentilis) 1
2  Индийская камышовка (Acrocephalus agricola) 1
3  Обыкновенный зимородок (Alcedo atthis) 2
4  Гусь белолобый (Anser albifrons) 1
5  Чернеть хохлатая (Aythya fuligula) 15
6  Обыкновенный гоголь (Bucephala clangula) 12
7  Песочник белохвостый (Calidris temminckii) 2
8  Обыкновенный козодой (Caprimulgus europaeus) 2
9  Малый зуёк (Charadrius dubius) 4
10  Галстучник (Charadrius hiaticula) 1
11  Полевой лунь (Circus cyaneus) 2
12  Клинтух (Columba oenas) 1
13  Вяхирь (Columba palumbus) 4
14  Лебедь-кликун (Cygnus cygnus) 2
15  Садовая овсянка (Emberiza hortulana) 7
16  Обыкновенная пустельга (Falco tinnunculus) 5
17  Кобчик (Falco vespertinus) 2
18  Бекас (Gallinago gallinago) 3
19  Камышница (Gallinula chloropus) 1
20  Малая чайка (Hydrocoloeus minutus) 1
21  Серый сорокопут (Lanius excubitor) 2
22  Большой веретенник (Limosa limosa) 1
23  Речной сверчок (Locustella fluviatilis) 3
24  Обыкновенный сверчок (Locustella naevia) 1
25  Свиязь (Mareca penelope) 2
26  Обыкновенный турпан (Melanitta fusca) 2
27  Желтоголовая трясогузка (Motacilla citreola) 7
28  Большой кроншнеп (Numenius arquata) 6
29  Средний кроншнеп (Numenius phaeopus) 1
30  Сплюшка (Otus scops) 1
31  Круглоносый плавунчик (Phalaropus lobatus) 1
32  Поганка красношейная (Podiceps auritus) 2
33  Поганка черношейная (Podiceps nigricollis) 9
34  Погоныш (Porzana porzana) 2
35  Обыкновенный ремез (Remiz pendulinus) 2
36  Широконоска (Spatula clypeata) 5
37  Чирок-трескунок (Spatula querquedula) 9
38  Малая крачка (Sternula albifrons) 2
39  Бородатая неясыть (Strix nebulosa) 5
40  Фифи (Tringa glareola) 9
41  Большой улит (Tringa nebularia) 2
42  Травник (Tringa totanus) 4
43  Чёрный дрозд (Turdus merula) 2
44  Чибис (Vanellus vanellus) 5
45  Мородунка (Xenus cinereus) 2
46  Обыкновенный уж (Natrix natrix) 3
47  Енотовидная собака (Nyctereutes procyonoides) 1
48  Ондатра (Ondatra zibethicus) 1
49  Обыкновенная бурозубка (Sorex araneus) 1
50  Европейский крот (Talpa europaea) 1
51  Обыкновенная лисица (Vulpes vulpes) 1
52  Густера (Blicca bjoerkna) 1
53  Подуст волжский (Chondrostoma variabile) 1
54  Толстая перловица (Unio crassus) 1
55  Павлиноглазка рыжая (Aglia tau) 1
56  Amphipoea oculea 1
57  Переливница ивовая (Apatura iris) 1
58  Жужжало большой (Bombylius major) 1
59  Голубянка крушинная (Celastrina argiolus) 1
60  Коровка приметная (Ceratomegilla notata) 1
61  Листоед травяной (Chrysolina graminis) 1
62  Златоглазка уокера (Chrysopa walkeri) 1
63  Эналлагма голубая (Enallagma cyathigerum) 4
64  Чернушка медуза (Erebia medusa) 2
65  Lestica clypeata 1
66  Скачок коротконадкрылый (Metrioptera brachyptera) 1
67  Долгоносик бледно-зелёный (Phyllobius maculicornis) 1
68  Совка-огнёвка скромная (Polypogon tentacularia) 1
69  Сфекс желтоватый (Sphex funerarius) 1
70  Пестроусая лептура (Stictoleptura variicornis) 1
71  Тысячелистник иволистный (Achillea salicifolia) 1
72  Полевица побегоносная (Agrostis stolonifera) 2
73  Манжетка балтийская (Alchemilla baltica) 1
74  Манжетка ложночашечковая (Alchemilla pseudocalycina) 1
75  Частуха обыкновенная (Alisma plantago-aquatica) 3
76  Ветреница уральская (Anemonoides uralensis) 2
77  Череда трёхраздельная (Bidens tripartita) 1
78  Колокольчик сибирский (Campanula sibirica) 1
79  Осока колосистая (Carex spicata) 1
80  Цицербита крупнолистная (Cicerbita macrophylla) 3
81  Гирчовник татарский (Conioselinum tataricum) 1
82  Пальчатокоренник мясо-красный (Dactylorhiza incarnata) 1
83  Луговик дернистый (Deschampsia cespitosa) 2
84  Болотница болотная (Eleocharis palustris) 1
85  Пырейник собачий (Elymus caninus) 1
86  Мелколепестник канадский (Erigeron canadensis) 1
87  Молочай-солнцегляд (Euphorbia helioscopia) 1
88  Очанка гребенчатая (Euphrasia pectinata) 2
89  Крушина ломкая (Frangula alnus) 1
90  Галинсога мелкоцветковая (Galinsoga parviflora) 1
91  Дрок красильный (Genista tinctoria) 1
92  Горечавка лёгочная (Gentiana pneumonanthe) 1
93  Ситник членистый (Juncus articulatus) 1
94  Ситник сплюснутый (Juncus compressus) 1
95  Латук сибирский (Lactuca sibirica) 1
96  Яснотка белая (Lamium album) 3
97  Кульбаба щетинистая (Leontodon hispidus) 2
98  Вербейник точечный (Lysimachia punctata) 1
99  Мята полевая (Mentha arvensis) 2
100  Котовник кошачий (Nepeta cataria) 1
101  Котовник голый (Nepeta nuda) 1
102  Нонея тёмно-бурая (Nonea pulla) 1
103  Кубышка спеннера (Nuphar × spenneriana) 1
104  Зубчатка обыкновенная (Odontites vulgaris) 3
105  Остролодочник волосистый (Oxytropis pilosa) 1
106  Девясил британский (Pentanema britannica) 2
107  Девясил шершавый (Pentanema hirtum) 1
108  Горец земноводный (Persicaria amphibia) 1
109  Горец перечный (Persicaria hydropiper) 1
110  Горец развесистый (Persicaria lapathifolia) 4
111  Горец шероховатый (Persicaria tomentosa) 1
112  Горох посевной (Pisum sativum) 1
113  Мятлик болотный (Poa palustris) 1
114  Polygonum aviculare 1
115  Тополь чёрный (Populus nigra) 5
116  Бескильница расставленная (Puccinellia distans) 1
117  Жерушник болотный (Rorippa palustris) 2
118  Стрелолист обыкновенный (Sagittaria sagittifolia) 1
119  Ива белая (Salix alba) 1
120  Бузина обыкновенная (Sambucus racemosa) 4
121  Кульбаба осенняя (Scorzoneroides autumnalis) 1
122  Очиток едкий (Sedum acre) 3
123  Мышей зелёный (Setaria viridis) 1
124  Смолёвка приятная (Silene amoena) 1
125  Осот шероховатый (Sonchus asper) 1
126  Ковыль перистый (Stipa pennata) 1
127  Астра новобельгийская (Symphyotrichum novi-belgii) 1
128  Окопник кавказский (Symphytum caucasicum) 1
129  Вероника длиннолистная (Veronica longifolia) 3
130  Горошек волосистый (Vicia hirsuta) 1
131  Фиалка скальная (Viola rupestris) 1
132  Цинния изящная (Zinnia elegans) 1
133  Опёнок летний (Kuehneromyces mutabilis) 1
134  Окснерия курчаволистовидная (Xanthomendoza ulophyllodes) 1
Posted on November 12, 2023 08:02 PM by shikhalev shikhalev | 0 comments | Leave a comment

August 31, 2023

Места: +5 муниципальных образований Свердловской области (done)

Последние пять МО добавлены в места:

Полный список можно найти в журнале проекта «Биоразнообразие районов Свердловской области».

Напомню, что умолчательные места для регионов и районов в iNaturalist не совпадают с реальностью на километры, что никуда не годится. Точность данных OSM под вопросом, но там речь идет максимум о десятках метров.

Posted on August 31, 2023 11:53 PM by shikhalev shikhalev | 0 comments | Leave a comment