# shred layer1
## レイヤをシュレッダーにかけるQGISプラグインの話
----
## 皆さんは覚えてるだろうか
### オークションで自分の作品をシュレッダーにかけて話題になった人のことを
----
![](https://i.imgur.com/L1Ob4H0.png)
----
## それを~~パクって~~オマージュして作ったプログラムがこちら
レイヤをシュレッダーにかけたように裁断するプログラム
<img src="https://i.imgur.com/hf14OCp.png" width=50%><img src="https://i.imgur.com/9cXs2J6.png" width=50%>
----
### 裁断用の短冊状のポリゴン
```
#VectorGrid
if self.radioButton.isChecked() == True:
shredGrid = processing.runAndLoadResults("qgis:creategrid",{'TYPE':2,'EXTENT':exta,'HSPACING':box.width()/shrednum,'VSPACING':box.height(),'HOVERLAY':0,'VOVERLAY':0,'CRS':layer.crs().authid(),'OUTPUT':'memory:'})
elif self.radioButton_2.isChecked() == True:
shredGrid = processing.runAndLoadResults("qgis:creategrid",{'TYPE':2,'EXTENT':exta,'HSPACING':box.width(),'VSPACING':box.height()/shrednum,'HOVERLAY':0,'VOVERLAY':0,'CRS':layer.crs().authid(),'OUTPUT':'memory:'})
shredlayer = QgsProject.instance().mapLayersByName("グリッドベクタの出力")[0]
```
<img src="https://i.imgur.com/UJqUBUv.png" width=30%>
----
### 各短冊で順番にクリップする
```
for i in range(1,shrednum+1,1):
shredlayer.selectByExpression('"id" =' + str(i),QgsVectorLayer.SetSelection)
processing.runAndLoadResults("native:clip", {"INPUT": layer, "OVERLAY":QgsProcessingFeatureSourceDefinition(shredGrid['OUTPUT'],True) , "OUTPUT": Dir + '/shred_'+layer.name() + "_" + str(i) + '.shp'})
```
![](https://i.imgur.com/9OvJUMZ.png)
----
### 元のレイヤを削除します
```
#remove layer
QgsProject.instance().removeMapLayer(layer)
QgsProject.instance().removeMapLayer(shredlayer)
```
----
### 元データをディレクタから削除します
```
#shp一式選択
files = glob.glob(filename.split('shp')[0]+'*')
#Delete
for i in files:
os.remove(i)
self.close()
```
----
### で、ここまでは以前よりやってたこと
----
### それをきちんとプラグイン化したいと思ってた。
<img src="https://i.imgur.com/u3n4WCk.png" width=150>![](https://i.imgur.com/y3mgtG4.png)
----
###
![](https://i.imgur.com/wTIAvOE.png)
----
### 元のレイヤはきちんと削除される。
![](https://i.imgur.com/ugJYkZe.png)
----
### ディレクトリからも削除される・・・・
----
### はず・・・
----
### Macなら問題なく削除されたけど。
<img src="https://i.imgur.com/pTz49bJ.png" width=40%>
----
### windowsの場合。
![](https://i.imgur.com/KpD7f3e.png)
----
### なんか残る
<img src="https://i.imgur.com/HWHrhY1.png" width=40%>
元レイヤがQGIS上で開きっぱなしにみなされていることはわかるんですが。。。。
----
### どうしたらいいんでしょう・・・
https://github.com/nbayashi/shredLayerPlugin
教えてください
----
### ちなみにこのアイコン
<img src="https://i.imgur.com/u3n4WCk.png" width=120>
![](https://i.imgur.com/f33tGFT.png)
----
### 元はこれで考えてたけど
<img src="https://i.imgur.com/dJCtgyQ.png" width=120>
あまりに、「それ」っぽくて著作権とかで怒られそうなのでやめました
----
## ちゃんちゃん
{"metaMigratedAt":"2023-06-15T15:57:53.807Z","metaMigratedFrom":"Content","title":"shred layer1","breaks":true,"contributors":"[{\"id\":\"3421bddd-0b9a-4ce6-a283-84b7305e07c8\",\"add\":3652,\"del\":993}]"}