跳转到主要内容

地理地图的即时操作。

项目描述

dask-geomodeling

https://readthedocs.org/projects/dask-geomodeling/badge/?version=latest https://github.com/nens/dask-geomodeling/actions/workflows/test.yml/badge.svg https://badge.fury.io/py/dask-geomodeling.svg https://anaconda.org/conda-forge/dask-geomodeling/badges/version.svg

Dask-geomodeling 是一组类,可以堆叠起来创建地理地图即时操作的配置。通过生成 Dask 计算图,这些操作可以被并行化,并且(中间)结果可以被缓存。

多个区块实例组合在一起形成一个视图。每个区块都有一个get_data方法,用于一次性获取数据,以及一个get_compute_graph方法,用于创建一个用于稍后计算数据的图。

阅读文档以获取更多信息。

dask-geomodeling的变更日志

2.5.1 (2024-09-30)

  • 修复/启用栅格源的重投影。

2.5.0 (2024-08-19)

  • 修复了使用geopandas >= 0.9重投影几何体时的警告。

  • 修复了与pandas 2.1的兼容性并解决了弃用警告,但仍与pandas >=2.2不兼容。

  • 添加了版本约束,显示了与numpy 2的不兼容性。

  • 为RasterBlock添加了必须的temporal属性。

2.4.4 (2024-01-17)

  • 修复了栅格源返回错误值的问题。

  • 修复了Place区块。

2.4.3 (2023-06-01)

  • 修复了TemporalAggregate / Cumulative中月起始(“MS”)频率的边缘情况。

2.4.2 (2023-05-31)

  • 修复了TemporalAggregate和Cumulative中月起始(“MS”)频率。

2.4.1 (2023-04-18)

  • AggregateRaster将对栅格执行点请求,如果只需要一个单元格(而不是包含单元格的框请求)。

2.4.0 (2023-04-13)

  • 更改Block.get_data;而不是总是在主线程中计算,使用通过dask.config设置的调度器。

2.3.13 (2023-04-04)

  • 扩展AggregateRaster以在点(以及其他小于单元格的几何体)上使用。

2.3.12 (2022-11-28)

  • 通过pyproj执行更多几何变换(参见2.3.11笔记)。

  • 元素级、减少和组合RasterBlocks的.geometry属性现在通过参数的范围计算(并且始终是框)。

2.3.11 (2022-11-22)

  • 通过pyproj而不是GDAL SWIG绑定执行几何变换,以避免GDAL >=3(PROJ >=6)中的性能下降。

  • 停止支持Python 3.6和GDAL 2。

2.3.10 (2022-08-22)

  • 修复了与GDAL 3.4的兼容性。

  • 修复了与shapely 2(PyGEOS合并)的兼容性。

2.3.9 (2022-03-07)

  • TemporalAggregate现在正确地结合了时间分辨率以检索时间键。

2.3.8 (2022-02-18)

  • 修复了AggregateRaster中时间分辨率的正确传播。

2.3.7 (2022-02-08)

  • 修复了raster.Max不处理“时间”和“元”模式。

2.3.6 (2022-02-04)

  • 撤销了对elemwise的更改。

2.3.5 (2022-02-02)

  • 添加了raster.Max区块,用于从重叠源中选择最大值。

  • 使Elemwise区块对源周期更加严格。

  • 停止支持python 3.5,并转向其他版本要求。

  • 修复了与distutils的弃用警告。

2.3.4 (2021-02-08)

  • 添加了默认设置“raster-limit-timesteps”。

2.3.3 (2020-12-11)

  • 修复了field_operations.Classify在使用int类型标签时的弃用警告。结果中的NaN值导致Categorical输出数据类型。为了修复这个问题,当输入标签是整数时,Classify现在也返回浮点数。(#82)

2.3.2 (2020-11-19)

  • 使Dilate参数可序列化为JSON。(#81)

2.3.1 (2020-11-10)

  • 在field_operations.Classify和ClassifyFromColumns中永不返回Categorical数据类型。这会导致pandas与后续操作(round、subtract、where、mask)不兼容。

  • 从不从ParseTextColumn返回Categorical数据类型。(#79)

  • field_operations.Where和field_operations.Mask现在也允许非布尔条件。这对于pandas == 0.19.*上的Where已经是这种情况。(#78)

2.3.0 (2020-10-09)

  • 添加了Exp、Log和Log10 RasterBlocks。

  • 向TemporalAggregate添加了“std”和“var”统计。

2.2.12 (2020-09-29)

  • 修复了RasterizeWKT的点请求。

  • 允许在Place中允许空坐标列表。

2.2.11 (2020-09-01)

  • 使变换异常更易于理解。

  • 在raster.Clip中检查匹配的时间分辨率。

  • 向raster.reduction STATISTICS添加了“product”。

2.2.10 (2020-07-29)

  • 修复了raster.Smooth中的点请求。

  • GDAL 3兼容性修复。

2.2.9 (2020-06-23)

  • 实现了RasterTiler。

  • 让raster.Mask适应大于uint8的int值。

2.2.8 (2020-06-12)

  • 在GeometryFileSink / to_file中接受Categorical值。

  • 修复了与geopandas >=0.7的不兼容性。

  • GeoJSON输出始终转换为EPSG:4326,并且没有“crs”字段。

  • 实现了raster.reduction.reduce_rasters。

  • 向raster.spatial.Place添加了“statistics”参数,以处理重叠特征。

  • 允许在raster.spatial.Place中允许点请求。

  • 关于MemorySource和RasterFileSource中光栅单元有效范围的解释。

2.2.7 (2020-04-30)

  • 在GeometryFileSink/to_file中接受列表和字典值。

  • 修复了ParseTextColumn中的错误,该错误在输出到输入列时添加了重复的列。

2.2.6 (2020-04-28)

  • 修复了FillNoData块中的错误。

  • 修复了AggregateRasterAboveThreshold(在#37中引入)的错误 (#44)。

2.2.4 (2020-03-25)

  • 允许在GeoTransform的‘倾斜’项中达到1E-7,以考虑可能的float32精度不足。

  • 处理geometry.field_operations.Classify和ClassifyFromColumns中的Nones。

  • 验证geometry.field_operations.Classify和ClassifyFromColumns中的标签是否唯一。

    • 添加了raster.spatial.Place。

2.2.3 (2020-02-28)

  • 修复了AggregateRaster:现在对于无数据像素返回NaN (#37)

2.2.2 (2020-02-13)

  • 添加了GeometryWKTSource。

  • 更新了所有docstrings。

  • 将raster.misc.Step的‘location’参数重命名为‘value’。

2.2.1 (2020-02-04)

  • 在ClassifyFromColumns中抑制“在大于中发现无效值”警告。

  • 对pandas 1.0.0进行兼容性修复。

  • 实现了raster.RasterizeWKT。

2.2.0 (2019-12-20)

  • utils.get_crs现在保留EPSG代码,而不是将它们转换为Proj4表示。

  • 实现了可以写入ESRI Shapefile、GeoJSON、GML和geopackage的GeometryFileSink。

  • 为所有GeometryBlocks添加了.to_file()方法。

  • 为.to_file()添加了dry_run参数(用于验证)。

  • 开始使用google docstring约定。

  • 几个小的doc修复。

  • 修复了GeometryFileSource中.crs属性的设置。

  • 修复了raster.Classify的序列化。

2.1.1 (2019-12-06)

  • 修复了TemporalAggregate和Cumulative的空响应。

  • 修复了空数据集情况下的逐元素光栅块。

2.1.0 (2019-11-15)

  • 添加了RasterFileSource.close_dataset来关闭GDAL文件句柄。

  • 在windows上运行unittests。

  • 修改safe_abspath和safe_file_url函数:它们现在自动解释geomodeling.root配置而不是‘start’关键字。

  • 添加了geomodeling.strict-file-paths,默认为False。这改变了所有处理文件路径的块默认行为:默认情况下,路径不需要在geomodeling.root中。

  • 添加了windows的安装说明。

  • 改进了ipyleaflet插件,使其可以处理同一台机器上的多个notebook服务器。参数‘hostname’被替换为‘url’。

2.0.4 (2019-11-01)

  • 修复了raster.Clip中‘extent’和‘geometry’属性的传播。两者现在都返回存储和掩码光栅的交集。

  • MemorySource和逐元素块在它们为空时现在返回None的‘extent’和‘geometry’。

  • 在geopandas 0.6中保留geometry.Difference块的函数。当从具有缺失几何形状的几何形状中减去时(A - None),geopandas < 0.6返回A作为结果,而>= 0.6返回None作为结果。

  • 为RasterFileSource的时间参数添加了默认值。

  • 为GeometryFileSource实现了‘columns’属性。

  • 修复了逐元素光栅块中一个参数是数字而不是Block实例时的投影属性。

  • 实现了逐元素光栅块的geo_transform属性。

  • 添加了一个用于在jupyter notebook中可视化RasterBlocks的ipyleaflet插件。

  • 将默认geomodeling.root设置更改为当前工作目录。

2.0.3 (2019-10-08)

  • 添加了文档。

  • 修复了MemorySource在请求超出数据边界时的错误。

  • 修复了Reclassify中的多个错误并添加了一些测试。现在,‘from’数据类型可以是布尔型或整型,而‘to’数据类型可以是整型或浮点型。返回的数据类型现在由numpy决定(int64或float64)。

2.0.2 (2019-09-04)

  • 清理了RasterBlocks的.check()方法。

  • 添加了Travisfile测试,针对自2017年以来所有版本在Linux和OSX上进行了测试。

  • 采取了python 3.5兼容性措施。

  • 在ParseText块中添加了对pandas 0.23的修复。

  • 将配置中的下划线更改为破折号,以实现与 dask 0.18 的兼容性。

  • 限制 dask 至 >= 0.18,numpy 至 >= 1.12,pandas 至 >= 0.19,geopandas 至 >= 0.4,scipy 至 >= 0.19。

  • 删除了显式的 (py)gdal 依赖。

2.0.1 (2019-08-30)

  • 将包重命名为 dask-geomodeling。

  • 将设置与 dask.config 集成。

  • 添加了 BSD 3-Clause 许可证。

2.0.0 (2019-08-27)

  • 移除了 raster-store 依赖。

  • 移除了 RasterStoreSource、ThreediResultSource、Result、Interpolate、DeprecatedInterpolate、GeoInterface 和 GroupTemporal 地理块。

  • 移除了所有 django 块 GeoDjangoSource、AddDjangoFields、GeoDjangoSink。

  • 简化了 Block 对象的标记化。

  • 实现了 construct_multiple,可一次性构建多个块。

  • 实现了 MemorySource 和 GeoTIFFSource 作为新的栅格源。

  • 添加了 Cumulative 地理块,用于执行时间累积。

1.2.13 (2019-08-20)

  • 添加了 TemporalAggregate 地理块,用于在栅格数据上执行时间聚合。

  • 修复了栅格数学地理块,使其在相加时不会出现字节大小整数的“环绕”问题。所有整数类型现在至少为 int32,所有浮点类型至少为 float32。

1.2.12 (2019-07-30)

  • 使 GeoDjangoSource 与现有的图定义向后兼容。

  • 修复了 Interpolate 包装器。

1.2.11 (2019-07-19)

  • 向 GeoDjangoSource 添加了新的参数 filters

1.2.10 (2019-07-05)

  • 如果 labels 是浮点数或整数,则将块返回的单个系列分类为 labels 的 dtype。

1.2.9 (2019-06-29)

  • 修复了标记化修复中引入的 bug。

1.2.8 (2019-06-29)

  • 如果块已被标记化,则跳过标记化。

1.2.7 (2019-06-28)

  • 实现了 AggregateRasterAboveThreshold。

1.2.6 (2019-06-27)

  • 修复了 ParseTextColumn 中的空列 description

  • 修复了 ClassifyFromColumns 中的空数据集情况。

1.2.5 (2019-06-26)

  • 在构建而不进行验证时跳过 (昂贵的) tokenize() 调用。如果提供了一个由地理块生成的图,则该令牌应出现在名称中。如果名称格式不正确,则发出警告,并在所有操作完成后调用 tokenize()。

  • 处理 ClassifyFromColumns 中的空数据集。

1.2.4 (2019-06-21)

  • 更新了 ParseTextColumn:允许值中包含空格。

1.2.3 (2019-06-21)

  • 栅格化地理块有 10000 个几何形状的限制。

  • 实现了 Series 的 Choose 地理块。

  • 在构建失败时在异常消息中添加了块键。

  • 添加了缓存到 get_compute_graph,以加快图生成。

  • 改进了文档。

1.2.2 (2019-06-13)

  • 修复了在构建时 validate=False 时地理块的标记化。

  • AggregateRaster 生成的栅格请求现在将它们的 bbox 锁定到 (0, 0),以提高可重现性。

1.2.1 (2019-06-12)

  • 修复了 1.2 中引入的 geoblocks.geometry.constructive.Buffer 中的 bug。

1.2 (2019-06-12)

  • 扩展 geometry.field_operations.Classify 以在 bin 外进行分类。例如,您现在可以提供 2 个 bin 和 3 个标签。

  • 实现了 geometry.field_operations.ClassifyFromColumns,它从 GeometryBlock 中的列获取其 bin,因此分类可以针对每个要素有所不同。

  • 扩展 geometry.base.SetSeriesBlock 以设置常量值。

  • 实现了 geometry.field_operations.Interp。

  • 实现了 geometry.text.ParseTextColumn,它将文本列解析为多个值列。

  • AddDjangoFields 自动将列转换为 Categorical dtype,如果数据是 'object' dtype(例如字符串)。这使得大型文本字段占用的内存空间小得多。

  • 在构建时使图验证可选。

  • 在构建和计算中使用 dask.get,以避免双重构建/计算。

  • 修复了 geoblocks.geometry.constructive.Buffer 中的 bug,该 bug 改变了计算图的位置,禁止对同一图进行两次计算。

1.1 (2019-06-03)

  • GeoDjangoSink 返回一个带有 'saved' 列的数据帧,指示保存是否成功。IntegrityErrors 导致 saved=False。

  • GeometryTiler 添加了投影参数。GeometryTiler 只接受与分块投影相等的请求。

  • 如果 GeoDjangoSource 返回的几何形状数量超过 GEOMETRY_LIMIT 设置,则引发 RuntimeError。

  • 向 geometry.AggregateRaster 添加了 auto_pixel_size 参数。如果此参数为 False,则当所需的栅格超过 max_size 参数时,过程会引发 RuntimeError。

  • 如果几何聚合器AggregateRaster中的max_size为None,则默认使用全局RASTER_LIMIT设置。

  • 在GeoDjangoSource中移除了index_field_name参数,自动从model._meta.pk.name获取。索引可以作为普通列包含在‘fields’中添加。

  • 更改GeoDjangoSource中‘fields’的默认行为:如果没有指定,则不包含额外字段。同时,起始和结束字段名也不包含。

  • 除了GeometryFileSource之外的所有几何块中添加了‘columns’属性。

  • 添加了SetSeriesBlock和GetSeriesBlock的测试。

  • 在GetSeriesBlock、AddDjangoFields和GeoDjangoSink中添加了检查列是否存在的功能。

  • 为Series实现了圆几何块。

  • 修复了在不同投影下聚合时AggregateRaster的问题。

  • 允许GeometryTiler在不同于请求几何的投影下进行瓦片处理。

1.0 (2019-05-09)

  • 改进了GeoDjangoSink的文档字符串并修复了错误。

  • 在GeoInterface中修复了处理inf值的错误。

  • 在几何块中添加了面积几何块以进行面积计算。

  • 添加了MergeGeometryBlocks以在GeoDataFrames之间进行合并操作。

  • 添加了GeometryBlock.__getitem__和GeometryBlock.set,从GeometryBlock获取单个列并将多个列设置到GeometryBlock。对应的几何块是geometry.GetSeriesBlock和geometry.SetSeriesBlock。

  • 在SeriesBlocks中添加了基本操作,包括add、sub、mul、div、truediv、floordiv、mod、eq、neq、ge、gt、le、lt、and、or、xor和not。

  • 记录了GeometryBlock的请求和响应协议。

  • 为shapely几何添加了分词器,以便GeometryBlock请求散列是确定的。

  • 为datetime和timedelta对象添加了分词器。

  • 添加了geopandas依赖。

  • 移除了GeoJSONSource并实现了GeometryFileSource。这个新的读取器没有简化和交集函数。

  • 实现了geometry.set_operations.Intersection。

  • 实现了geometry.constructive.Simplify。

  • 调整了MockGeometry测试类。

  • 重新实现了utils.rasterize_geoseries并修复了raster.Rasterize。

  • 重新实现了geometry.AggregateRaster。

  • 修复了超出数据集范围的3Di Result几何块的时间请求。

  • 实现了geometry.GeoDjangoSource。

  • 实现了geometry.GeoDjangoSink。

  • 在聚合时添加了对重叠几何体的支持。

  • 提高了GeoSeries坐标转换的性能。

  • 修复了范围类型几何响应名称不一致的问题。

  • 在没有几何体的情况下始终返回一个空的geodataframe。

  • 实现了geometry.Difference。

  • 实现了geometry.Classify。

  • 为geometry.AggregateRaster实现了百分比统计。

  • 实现了geometry.GeometryTiler。

  • 显式设置AggregateRaster的结果列名(默认为‘agg’)。

  • 为geometry.AggregateRaster实现了计数统计。

  • 实现了geometry.AddDjangoFields。

  • 为Django几何源添加了时间过滤。

  • 允许在raster.Clip中使用布尔掩码。

  • 实现了raster.IsData。

  • 实现了geometry.Where和geometry.Mask。

  • 扩展了raster.Rasterize以将浮点数、整数和布尔属性进行瓦片处理。

  • 修复了Rasterize中的错误,错误地设置了'min_size'。

0.6 (2019-01-18)

  • 在raster.Interpolate中将geo_transform强制转换为浮点数列表,防止由于它包含decimal.Decimal对象而引发TypeError。

0.5 (2019-01-14)

  • 将RasterStoreSource、GeoJSONSource和ThreediResultSource中的路径URL调整为绝对路径。它们仍然接受相对于设置中存储的相对路径。

0.4 (2019-01-11)

  • GeoInterface的‘store_resolution’结果字段现在以整数形式返回分辨率(以毫秒为单位),而不是datetime.timedelta。

  • 为Optimizer几何块添加了元数据字段。

  • 在Group(和Optimizer)块中传播几何体的并集。

  • 在逐元素块中传播几何体的交集。

  • 为所有块实现了投影元数据字段。

  • 通过将时间平移存储为毫秒而不是datetime.timedelta来修复Shift几何块,因为datetime.timedelta不是JSON序列化的。

0.3 (2018-12-12)

  • 添加了geoblocks.raster.Classify。

  • 让raster.Interpolate块接受(已弃用的)layout关键字参数。

0.2 (2018-11-20)

  • 已将ThreediResultSource的path属性重命名为hdf5_path并进行了修复。

0.1 (2018-11-19)

  • 创建了初始项目结构。

  • 从raster-store复制了graphs.py、tokenize.py、wrappers.py、results.py、interfaces.py以及相关的测试和工厂。

  • 将包装器重命名为“geoblocks”,它们都是Block的子类。包装器被重构为子模块core、raster、geometry和interfaces。

  • 新的geoblocks.Block基类现在提供了以下基础设施:a) 描述关系块图和b) 从并行计算请求生成计算图。

  • 关系块图或计算图中的每个元素都使用来自dasktokenize模块进行哈希,该模块能够生成唯一且确定的令牌(哈希)。

  • 块现在保存到新的json格式(版本2)。

  • 每个块都支持属性periodtimedeltaextentdtypefillvaluegeometrygeo_transform

  • 每个块上都实现了check方法,并刷新了基本元素(stores.Store / results.Grid)。

  • geoblocks.raster.sources.RasterStoreSource现在应该包装在raster_store.stores.Store中,以便将其作为图中的数据源包含在内。

  • 使用black代码格式化工具重新格式化了代码。

  • 实现了GroupTemporal作为多存储Lizard对象的替代。

  • GeoInterface适配以模拟已弃用的lizard_nxt.raster.Raster。

  • 修复了ciso8601 2.*的问题。

  • 将raster-store依赖项升级到4.0.0。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

dask_geomodeling-2.5.1.tar.gz (92.7 kB 查看哈希)

上传时间

构建分布

dask_geomodeling-2.5.1-py3-none-any.whl (100.9 kB 查看哈希)

上传时间 Python 3

支持