Compare commits

..

1 Commits

Author SHA1 Message Date
Andy Eschbacher
004da32f19 first add 2016-09-22 14:06:23 -04:00
4 changed files with 34 additions and 11 deletions

View File

@@ -41,8 +41,8 @@ before_install:
- sudo apt-get -y install postgresql-9.5=9.5.2-2ubuntu1
- sudo apt-get -y install postgresql-server-dev-9.5=9.5.2-2ubuntu1
- sudo apt-get -y install postgresql-plpython-9.5=9.5.2-2ubuntu1
- sudo apt-get -y install postgresql-9.5-postgis-scripts=2.2.2.0-cdb2
- sudo apt-get -y install postgresql-9.5-postgis-2.2=2.2.2.0-cdb2
- sudo apt-get -y install postgresql-9.5-postgis-scripts=2.2.2.0-cdb2
# configure it to accept local connections from postgres
- echo -e "# TYPE DATABASE USER ADDRESS METHOD \nlocal all postgres trust\nlocal all all trust\nhost all all 127.0.0.1/32 trust" \

View File

@@ -1,5 +0,0 @@
joblib==0.8.3
numpy==1.6.1
scipy==0.14.0
pysal==1.11.2
scikit-learn==0.14.1

View File

@@ -0,0 +1,33 @@
CREATE OR REPLACE FUNCTION CDB_WeightedMedianCenter(geoms geometry[], vals numeric[])
RETURNS geometry(Point, 4326)
AS $$
DECLARE
i INT;
median_val numeric;
median_index INT;
BEGIN
-- find the median value
SELECT percentile_disc(0.5) WITHIN GROUP (ORDER BY v) INTO median_val
FROM unnest(vals) As x(v);
-- find the index of the median value
FOR i in 1..array_length(vals, 1)
LOOP
IF vals[i] < median_val
THEN
median_index := i;
EXIT;
END IF;
END LOOP;
-- return the geometry that has the median value of the dataset
IF ST_GeometryType(geoms[median_index]) <> 'ST_Point'
THEN
RETURN ST_Centroid(geoms[median_index]);
ELSE
RETURN geoms[median_index];
END IF;
END;
$$ LANGUAGE plpgsql;

View File

@@ -1,5 +0,0 @@
joblib==0.8.3
numpy==1.6.1
scipy==0.14.0
pysal==1.11.2
scikit-learn==0.14.1