地理地图的即时操作。
项目描述
dask-geomodeling
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) 从并行计算请求生成计算图。 
- 关系块图或计算图中的每个元素都使用来自dask的tokenize模块进行哈希,该模块能够生成唯一且确定的令牌(哈希)。 
- 块现在保存到新的json格式(版本2)。 
- 每个块都支持属性period、timedelta、extent、dtype、fillvalue、geometry和geo_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。 
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。