地理地图的即时操作。
项目描述
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。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。