矢量图层(FeatureClass)获取和更新Extent

在FeatureClass中编辑,删除,或添加要素后,可用如下的代码手动更新一下其Extent
 
((IFeatureClassManage)pFeatureClass).UpdateExtent();
 
获取图层Extent的方法为:
((IGeoDataset)pFeatureClass).Extent
 
或根据图层中的所有要素计算一下Extent:
 
IEnvelope env = null;
int feaCount = fc.FeatureCount(null);
for (int i = 0; i < feaCount; i++)
{
if (env == null) env = fc.GetFeature(i).Extent;
else env.Union(fc.GetFeature(i).Extent);
}
 
要注意的是,这两种方法获取到的Extent有时是不一样的

要实现删除 `OID_`, `Value`, `Count` 这三列,并对 `DLMC` 列进行哑变量处理,可以使用 Python Pandas 库。以下是一个示例代码: ```python import pandas as pd from sklearn.preprocessing import OneHotEncoder # 读取数据 data = { 'OID_': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'Value': [2899.0, 1939.0, 20565.0, 1600.0, 1958.0, 23.0, 88.0, 106.0, 177.0, 1288.0], 'Count': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 'DLMC': ['水田', '其他林地', '乔木林地', '旱地', '茶园', '竹林地', '其他园地', '其他草地', '坑塘水面', '农村宅基地'] } df = pd.DataFrame(data) # 删除 OID_, Value, Count 列 df.drop(columns=['OID_', 'Value', 'Count'], inplace=True) # 对 DLMC 列进行哑变量处理 one_hot_encoder = OneHotEncoder(sparse=False) one_hot_encoded_data = one_hot_encoder.fit_transform(df[['DLMC']]) # 创建新的 DataFrame 来存储哑变量结果 one_hot_df = pd.DataFrame(one_hot_encoded_data, columns=one_hot_encoder.get_feature_names_out(['DLMC'])) # 将哑变量结果合并到原始 DataFrame 中 result_df = pd.concat([df.drop(columns=['DLMC']), one_hot_df], axis=1) print(result_df) ``` ### 解释 1. **读取数据**:首先创建一个字典来模拟你的数据,并将其转换为 Pandas DataFrame。 2. **删除列**:使用 `drop` 方法删除 `OID_`, `Value`, `Count` 这三列。 3. **哑变量处理**:使用 `OneHotEncoder` 对 `DLMC` 列进行哑变量处理。 4. **创建新 DataFrame**:将哑变量结果转换为 DataFrame。 5. **合并结果**:将哑变量结果合并到原始 DataFrame 中,并打印最终结果。 运行上述代码后,你将得到一个新的 DataFrame,其中 `DLMC` 列已经被替换为多个二进制列,每个列代表 `DLMC` 列中的一个类别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值