C# 在gdal_retile.py中更改以设置自己的比例

C# 在gdal_retile.py中更改以设置自己的比例,c#,python,gdal,C#,Python,Gdal,我使用gdal_retile.py脚本将光栅切割成平铺(重写为C)。一切都很好,但我希望我的脚本以一种不同的方式工作。我想要的是改变第一级的比例。我希望使用以下模式计算: private const double MetersPerInch = 0.0254; private const double DPI = 96; private double GetScale(int meters, int pixels) { return meters/pixels/MetersPerInc

我使用
gdal_retile.py
脚本将光栅切割成平铺(重写为
C
)。一切都很好,但我希望我的脚本以一种不同的方式工作。我想要的是改变第一级的比例。我希望使用以下模式计算:

private const double MetersPerInch = 0.0254;
private const double DPI = 96;

private double GetScale(int meters, int pixels)
{
    return meters/pixels/MetersPerInch*DPI;
}
例如。

如果我得到一个大小为
4k x 4k px
100 km
的光栅,那么:
scale=100000/4000/0.0254*96=~94488

现在我需要找到第一个比计数高的刻度,它是2的幂。在这种情况下,它是
1:131072
。我应该把它设为我第一级的量表。下一级的比例应该是2的幂:
[1:262144,1:524288,1:1048576,…]

有人能帮我修改脚本吗?我不关心语言(它可以在
Python
C#
中完成)

提前感谢您提供的任何解决方案

好的,我做到了

这是源代码(也许将来会有人需要它-小心,因为我在
370
432
433
行中做了更改-如果您想将更改还原为原始更改,只需将
\u scaleFactor
变量替换为
2
,并删除所有
\u scaleFactor
计算):