Puoi acquisire lo standard in questo modo:
from subprocess import Popen, PIPE
cmd = ['gdallocationinfo', '-geoloc', '-valonly', src, lng, lat]
p = Popen(cmd, stdout=PIPE)
p.wait()
val = p.stdout.read()
Ho scavato un po' di più e ho trovato la risposta alla mia domanda:
invece di utilizzare os.system, la sintassi corretta per memorizzare il risultato in una variabile è:
result = os.popen('gdallocationinfo -valonly -wgs84 %s %s' % (lyr, loc)).read()
Penso che dovrai usare la sintassi del sottoprocesso, è spiegata in questo post:
sottoprocesso per chiamare gdal dall'interno di python