Selška Sora je glavni vodotok v severnem delu Škofjeloškega hribovja. Izvira kot majhen studenec nad vasjo Zgornja Sorica, nadaljuje pot skozi Petrovo Brdo, proti jugu, sprva po plitvi, neizraziti dolini, nato po vse globlji grapi proti jugovzhodu do sotočja z Zadnjo Soro na nadmorski višini okoli 600 metrov. Zadnja Sora je sicer daljša in izvira višje, na južnem pobočju Lajnarja nad Petrovim Brdom, na nadmorski višini okoli 1000 metrov, vendar za povirni del Selške Sore velja potok iz Zgornje Sorice.
Struga Selške Sore je na precejšnji dolžini še razmeroma v naravnem stanju, na nekaterih odsekih pa je spremenjena v enolično, s skalami obloženo korito trapezaste oblike. Takšni posegi so na mnogih mestih nujni, saj hudourniške vode marsikje ogrožajo ceste in drugo infrastrukturo ter zgradbe v naseljih. V takšnih strugah je hitrost odtekanja visokih voda veliko večja, bistveno pa se zmanjša naravna raznolikost. Po katastrofalnih poplavah leta 2007 so bili izvedeni številni novi posegi v Železnikih, v zgornjem toku nad Podroštom, med Dolenjo vasjo in Bukovico.