| 133 | == How to explore the ccm database == |
| 134 | |
| 135 | which segments are upstream from the current segment ? |
| 136 | |
| 137 | {{{ |
| 138 | -- Vilaine |
| 139 | --- creating a second index to accelerate the requests |
| 140 | CREATE INDEX indexriversegments_wso_id |
| 141 | ON ccm21.riversegments |
| 142 | USING btree |
| 143 | (wso_id); |
| 144 | |
| 145 | select * from ccm21.riversegments where wso_id=291146; |
| 146 | CREATE INDEX indexcatchments_wso_id |
| 147 | ON ccm21.catchments |
| 148 | USING btree |
| 149 | (wso_id); |
| 150 | select * from ccm21.catchments where wso_id=291146 and wso3_id=291828 ; |
| 151 | -- extraction du chiffre immediatement à gauche du segment selectionné |
| 152 | select * from ccm21.riversegments where wso_id=291146 order by cum_len desc; |
| 153 | select round(pfafstette) from ccm21.riversegments where wso_id=291146 order by cum_len desc; |
| 154 | select CAST(round(pfafstette) AS TEXT) from ccm21.riversegments where wso_id=291146 order by cum_len desc; |
| 155 | select substring(CAST(round(pfafstette) AS TEXT),2,2) from ccm21.riversegments where wso_id=291146 order by cum_len desc; |
| 156 | |
| 157 | }}} |
| 158 | |
| 159 | |
| 160 | {{{ |
| 161 | Create an index on all wso1_id |
| 162 | CREATE INDEX indexriversegments_wso1_id |
| 163 | ON ccm21.riversegments |
| 164 | USING btree |
| 165 | (wso1_id); |
| 166 | }}} |
| 167 | |
| 168 | {{{ |
| 169 | Create an index on all wso1..._id |
| 170 | CREATE INDEX indexcatchments_wso1_id |
| 171 | ON ccm21.catchments |
| 172 | USING btree |
| 173 | (wso1_id); |
| 174 | }}} |
| 175 | |
| 176 | {{{ |
| 177 | -- segment mer vilaine |
| 178 | select * from ccm21.riversegments where gid=234706; |
| 179 | -- le rang de strahler est 6 |
| 180 | -- recupération de l'identifiant du bv correspondant |
| 181 | select wso6_id from ccm21.riversegments r join ccm21.catchments c on r.wso1_id=c.wso1_id where r.gid=234706; |
| 182 | -- 291146 |
| 183 | select wso1_id from ccm21.catchments c where wso6_id = 291146; |
| 184 | -- le m^ en plus compliqué |
| 185 | select wso1_id from ccm21.catchments c where wso6_id = |
| 186 | select wso1_id from ccm21.catchments c where wso6_id = |
| 187 | (select wso6_id from ccm21.riversegments r |
| 188 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 189 | where r.gid=234706); |
| 190 | -- liste de wso1_id |
| 191 | -- extraction des segments contenus dans ces bassins |
| 192 | select * from ccm21.riversegments where wso1_id in |
| 193 | (select wso1_id from ccm21.catchments c where wso6_id = 291146) order by cum_len desc; |
| 194 | -- le m^ en plus compliqué |
| 195 | select * from ccm21.riversegments where wso1_id in |
| 196 | (select wso1_id from ccm21.catchments c where wso6_id = |
| 197 | (select wso6_id from ccm21.riversegments r |
| 198 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 199 | where r.gid=234706) |
| 200 | ) ; |
| 201 | -- avec un cas adapté à chaque rang de strahler (marche pas) |
| 202 | |
| 203 | select CASE WHEN r.strahler=5 THEN (select wso1_id from ccm21.catchments c where wso5_id = |
| 204 | (select wso5_id from ccm21.riversegments r |
| 205 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 206 | where r.gid=234706)) |
| 207 | WHEN r.strahler=6 THEN (select wso1_id from ccm21.catchments c where wso6_id = |
| 208 | (select wso6_id from ccm21.riversegments r |
| 209 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 210 | where r.gid=234706)) |
| 211 | ELSE 0 |
| 212 | END AS wso1_id |
| 213 | FROM ccm21.riversegments r |
| 214 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 215 | where r.gid=234706; |
| 216 | |
| 217 | -- marche pas |
| 218 | |
| 219 | |
| 220 | |
| 221 | -- longueur de la cle pfstette |
| 222 | select character_length(CAST(round(pfafstette) AS TEXT)) from ccm21.riversegments where gid=234706; --1 |
| 223 | -- selection de tous les noeuds de la Vilaine en amont du noeud choisi |
| 224 | select gid from ccm21.riversegments |
| 225 | where wso_id=291146 |
| 226 | and CAST(substring(CAST(round(pfafstette) AS TEXT), |
| 227 | 1, |
| 228 | 1 -- voir ci dessus pour le calcul |
| 229 | ) as numeric ) |
| 230 | |
| 231 | >1 ; |
| 232 | -- le même en plus compliqué |
| 233 | select gid from ccm21.riversegments |
| 234 | where wso_id=291146 |
| 235 | and CAST(substring(CAST(round(pfafstette) AS TEXT), |
| 236 | 1, |
| 237 | 1 -- voir ci dessus pour le calcul |
| 238 | ) as numeric ) |
| 239 | |
| 240 | > (select pfafstette FROM ccm21.riversegments where gid=234706); |
| 241 | |
| 242 | -- le même en plus compliqué |
| 243 | select gid from ccm21.riversegments |
| 244 | where wso_id=291146 |
| 245 | and CAST(substring(CAST(round(pfafstette) AS TEXT), |
| 246 | 1, |
| 247 | (select character_length(CAST(round(pfafstette) AS TEXT)) from ccm21.riversegments where gid=234706) |
| 248 | ) as numeric ) |
| 249 | |
| 250 | > (select pfafstette FROM ccm21.riversegments where gid=234706); |
| 251 | select max (strahler) from ccm21.riversegments -- 10 |
| 252 | -- le même en plus compliqué |
| 253 | select gid from ccm21.riversegments |
| 254 | where wso1_id in |
| 255 | (select wso1_id from ccm21.catchments c where wso6_id = |
| 256 | (select wso6_id from ccm21.riversegments r |
| 257 | join ccm21.catchments c on r.wso1_id=c.wso1_id |
| 258 | where r.gid=234706) |
| 259 | ) |
| 260 | and CAST(substring(CAST(round(pfafstette) AS TEXT), |
| 261 | 1, |
| 262 | (select character_length(CAST(round(pfafstette) AS TEXT)) from ccm21.riversegments where gid=234706) |
| 263 | ) as numeric ) |
| 264 | |
| 265 | > (select pfafstette FROM ccm21.riversegments where gid=234706); |
| 266 | |
| 267 | -- le même en plus compliqué |
| 268 | }}} |