Ранее я делал серию постов про битовые операторы.
Вот вам ещё один наглядный пример как это используется в Python в модуле re.
Чтобы указать флаг для компилятора нам надо указать его после передаваемой строки. Например, добавляем флаг для игнорирования переноса строки.
pattern = re.compile(r"(\w+)+")
words = pattern.search(text, re.DOTALL)
А как указать несколько флагов? Ведь явно будут ситуации когда нам потребуется больше одного. Кто читал посты по битовые операторы уже понял как.
pattern.search(text, re.DOTALL | re.VERBOSE)
А теперь смотрим исходники, что находится в этих атрибутах?
Не удивительно, степени двойки. Почему? Потому что каждое следующее значение это сдвиг единицы влево.
>>> for n in [1, 2, 4, 8, 16, 32, 64, 128, 256]:
>>>
print(bin(n))
0b1
0b10
0b100
0b1000
0b10000
0b100000
0b1000000
0b10000000
0b100000000
Чтобы было понятней, давайте напишем тоже самое но иначе, добавим ведущие нули:
000000001
000000010
000000100
000001000
000010000
000100000
001000000
010000000
100000000
Не понятно что тут происходит? Читай три поста про битовые операторы начиная с этого ➡️https://t.me/pythonotes/45
В общем, это пример применения побитовых операций в самом Python.
Теперь вы знаете Python еще немного лучше)
#tricks#regex#libs
47.8 миллионов километров дорог распознано в картах Bing и выложено Microsoft онлайн в виде открытых данных под лицензией ODbl [1]. В данных совсем нет Китая, Японии, Кореи, Папуа Новая-Гвинея.
Но Россия есть, и обитаемая зона её не так велика как географическая.
Все данные в формате TSV, сжатый объём около 10GB.
Ссылки։
[1] https://github.com/microsoft/RoadDetections
#opendata#datasets#microsoft
В рубрике как это устроено у них могу сказать что для меня открытие этого года в том сколько спешно-успешно распространяются сервисы для доступа к геоданным на базе спецификации STAC (SpatioTemporal Asset Catalogs). Я как раз обновляю реестр каталогов данных Dateno и у меня сервисов поддерживающих спецификацию STAC накопилось уже 168. Скорее будет больше. При этом изначально я их классифицировал как отдельное ПО, потому что большая часть сервисов были на базе референсных реализаций, а правильнее классифицировать как протокол, а ПО определять иначе. Например, после появления расширения STAC для Geoserver (ПО с открытым кодом для создания OGC совместимых API, используется по всему миру)
Особенность спецификации STAC в том что из нее сложно преобразовывать в другие спецификации и отсюда сложность в индексации в Dateno. То что обычно называют датасетом в STAC называется каталогом, в рамках этого каталога публикуются ресурсы охватывающие территорию заданную этим каталогом, но в разные промежутки времени (еженедельно, ежедневно, ежечасно и тд). В результате внутри одного набора данных могут быть тысячи и миллионы файлов. Рассматривать ресурсы как отдельные наборы данных будет некорректно, а как отображать карточки с таким числом файлов непонятно.
И, кстати, перечень каталогов STAC сервисов на StacIndex неполон, у нас в реестре Dateno полнее будет, а в живой природе их сильно больше потому что, как я упоминал, он теперь поддерживается расширением GeoServer'а, а этих инсталляций в мире очень много.
P.S. Кстати, у Роскосмоса тоже есть открытый STAC каталог, с декларируемыми примерно 200ТБ данными. Явление необычное при нынешнем тренде в РФ на закрытость.
#opendata#geodata#datasets
GlobalBuildingAtlas набор данных по всем зданиям в мире, общим объёмом в 36 терабайт. Опубликован в апреле 2025 г. , доступен для полной выгрузки и как сервис WFS. Под лицензией CC-BY-NC 3.0 (свободное использование для некоммерческих целей)
#opendata#datasets#geodata
Ещё одна важная находка, оказывается облачные LLM'ки вполне неплохо научились восстанавливать данные из графиков. Причём в разных формах и разных стилях. Это даёт довольно существенные возможности по превращению PDF отчетов и презентаций в таблицы с данными.
Слишком многие данные вот таким образом закопаны в официальных отчётах. А теперь можно их "выковыривать" гораздо более универсальными способами.
#data#datasets#llm
В рубрике интересных проектов на данныхGeoSeer [1], поисковая система по геоданным, а конкретнее по точкам API по стандартам WFS, WMC, WCS по всему миру. Я писал о нём год назад [2] и в течение года ни раз обращал внимание.
Из интересного:
1. 3.5 миллиона проиндексированных георесурсов/геоданных
2. За деньги доступно API для поиска
3. Любопытная статистика по охвату [3]
4. Дают расширенное описание георесурсов с учётом его геохарактеристик (области, атрибутов WFC/WMS и др.) [4]
Из особенностей:
- более 60%, примерно 2 миллиона записей - это геоданные Германии. Для сравнения в Dateno 4.4 миллиона георесурсов из которых к Германии относятся 1.89, это около 43%.
- реестр источников не публикуют, вернее обещают доступность только через API при платном тарифе
- фасетного поиска нет, только достаточно простой язык запросов
- поскольку индексируются WMS, WFC, WCS и WMTS то охватывает гораздо больше точек подключения в этих стандартах, но не охватывает все остальные геоданные, на порталах открытых данных и в каталогах ArcGIS и не только.
Разницу между GeoSeer и Dateno можно описать так:
1. ✅В Dateno есть публичный реестр всех источников, он не скрывается, любой желающий может скачать его как датасет [4].
2. ✅В Dateno есть много открытой статистики [5]. Она пока мало визуализируется, но с ней можно работать.
3. ✅В Dateno есть быстрый фасетный поиск и фильтрация по странам/территориям и другим критериям
4. ✅Dateno агрегирует геоданные из порталов неохваченных GeoSeer поскольку они не по стандартам OGC.
5. ❌Пока в Dateno нет охвата любых источников геоданным по стандартам OGC
6. ❌Пока в Dateno нет расширенного вывода метаданных для георесурсов
В целом пересечение индексов GeoSeer и Dateno в части геоданных около 60-80%. GeoSeer для проекта выглядит как хороший референсный проект для проверки полноты собственной базы.
Ссылки:
[1] https://www.geoseer.net
[2] https://t.me/begtin/5071
[3] https://www.geoseer.net/stats/
[4] https://github.com/commondataio/dataportals-registry/
[5] https://github.com/commondataio/dateno-stats
#opendata#datasearch#datasets#geodata#spatial
http://wla.berkeley.edu/~cs61a/fa11/lectures/streams.html
In this chapter, we continue our discussion of real-world applications by developing new tools to process #sequential#data. In Chapter 2, we introduced a sequence interface, implemented in Python by built-in data types such as #tuple and #list. #Sequences supported two operations: querying their length and accessing an element by index. In Chapter 3, we developed a user-defined implementations of the sequence interface, the Rlist class for representing recursive lists. These sequence types proved effective for representing and accessing a wide variety of sequential #datasets.
#typescript#ai#analytics#datasets#dspy#evaluation#gpt#llm#llmops#low_code#observability#openai#prompt_engineering
LangWatch helps you monitor, test, and improve AI applications by tracking performance, comparing different setups, and optimizing prompts automatically. It works with any AI tool or framework, keeps your data secure, and lets you collaborate with experts to fix issues quickly, making your AI more reliable and efficient.
https://github.com/langwatch/langwatch