Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Geospatial formats: Shapefile / GeoJSON / KML / GPX conversion and GeoTIFF band split

未关闭
#155 3 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 1 天内回复

@KnifeLemon 已经在做这个了。

开始于 2026年10月19日。

评估

这个 Issue 还没有评估数据。

描述

enhancement formats

What would you like Filee to do?

Convert common geospatial (GIS) files, in two steps that can ship as separate pull requests:

  1. Vector data: Shapefile (.shp with its .dbf / .prj, or a .zip of them), GeoJSON, KML / KMZ, GPX and CSV (lat/lon columns or WKT) converting to each other. A Shapefile can also be split into several files, for example one output per value of an attribute column.
  2. Rasters: read GeoTIFF (including 16-bit and float bands), save a multi-band raster as one file per band (name_b1.tif, name_b2.tif, …) and the reverse (stack bands), and save a colour-mapped PNG preview.

Why / when would you use it?

I work in geospatial analysis, where these files are exchanged all day, and the usual way to convert them is a large GIS program or a command-line tool. "Drag a Shapefile onto GeoJSON" or "drag a satellite image onto separate bands" fits Filee well. Because of the route planner it would also unlock chains for free, e.g. Shapefile → CSV → XLSX / JSON.

Ideas for how it could work

I'd like to build this myself, following docs/ADDING-A-CONVERTER.md, and I'd rather agree on the shape with you first:

  • In-process C# only, like the 3D models and data engines: no GDAL/QGIS and nothing from PATH. For the vector side I'm considering NetTopologySuite (BSD-3) with its Esri Shapefile and GeoJSON readers, plus small hand-written KML / GPX readers and writers; I'll check each library's license and list it in THIRD-PARTY-NOTICES.md. Tell me if you prefer fewer dependencies and hand-written readers.
  • Rasters need their own TIFF reader. The ImageMagick Q8 build is 8-bit, so a 16-bit or float elevation or satellite band would be clipped. I'd read the TIFF and its GeoTIFF tags directly (or with a small managed TIFF library) and keep the georeferencing in the per-band outputs.
  • One new format category (for example Geo) with its own donut toolbar profile, so geo files don't mix into Data. Is that fine, or would you rather file them under Data / Cad / Image to keep the UI changes small?
  • Options such as "split by attribute" or the band choice would need preset options and a settings migration. I would start without options (one fixed behaviour per preset) and add them in a later PR.
  • Tests use files generated in the test (as the other engine tests do), plus a few tiny hand-made samples; every new UI string goes into all i18n/*.json files.

Planned pull requests, each small and independent:

  1. GeoJSON ↔ KML / KMZ ↔ GPX ↔ CSV
  2. Shapefile read/write (+ split by attribute)
  3. GeoTIFF reading, PNG preview
  4. Band separation and stacking

Does this direction sound right to you, and is there anything you'd change before I start? If a geospatial engine is out of scope for Filee, I'd rather know now.

主要语言
C#
星标
3.6k
派生
192
平均合并
4 小时 6 分钟
30 天内合并 PR
158

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

KnifeLemon/Filee 的其他 Issue

查看 KnifeLemon/Filee 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。