Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,9 @@
'django-large-image==0.10.0',
'drf-yasg==1.21.7',
'matplotlib==3.9.2', # for raster colormaps
'osmnx==2.0.6',
'geopandas==1.1.1',
'networkx==3.3',
'pooch==1.8.2',
'pooch[progress]==1.8.2',
'pyshp==2.3.1',
'rasterio==1.3.10',
'urllib3==1.26.15',
Expand All @@ -77,6 +76,7 @@
],
'tasks': [
'geoai-py==0.9.2',
'osmnx==2.0.6',
],
'test': [
'factory-boy==3.3.1',
Expand Down
2 changes: 2 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ passenv =
extras =
dev
test
deps =
osmnx
commands =
pip install large-image[gdal] --find-links https://girder.github.io/large_image_wheels
pip install large-image-converter --find-links https://girder.github.io/large_image_wheels
Expand Down
3 changes: 2 additions & 1 deletion uvdat/core/tasks/osmnx.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from celery import shared_task
from django.contrib.gis.geos import LineString, Point
import osmnx

from uvdat.core.models import (
Dataset,
Expand Down Expand Up @@ -42,6 +41,8 @@ def metadata_for_row(row):

@shared_task
def load_roads(project_id, location):
import osmnx

project = Project.objects.get(id=project_id)
dataset = get_or_create_road_dataset(project, location)
vector_data = VectorData.objects.create(
Expand Down
2 changes: 1 addition & 1 deletion web/src/api/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export async function restoreLogin() {
}
await oauthClient.maybeRestoreLogin();
if (oauthClient.isLoggedIn) {
apiClient.get("/users/me").then((response) => {
apiClient.get("/users/me/").then((response) => {
if (response.data) {
useAppStore().currentUser = response.data;
}
Expand Down
50 changes: 25 additions & 25 deletions web/src/api/rest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import {
} from "@/types";

export async function getUsers(): Promise<User[]> {
return (await apiClient.get(`users`)).data.results;
return (await apiClient.get('users/')).data.results;
}

export async function getProjects(): Promise<Project[]> {
return (await apiClient.get("projects")).data.results;
return (await apiClient.get('projects/')).data.results;
}

export async function createProject(
Expand All @@ -35,7 +35,7 @@ export async function createProject(
default_map_zoom: number
): Promise<Project> {
return (
await apiClient.post("projects/", {
await apiClient.post('projects/', {
name,
default_map_center,
default_map_zoom,
Expand Down Expand Up @@ -64,34 +64,34 @@ export async function deleteProject(projectId: number): Promise<Project> {
export async function getProjectDatasets(
projectId: number
): Promise<Dataset[]> {
return (await apiClient.get(`datasets?project=${projectId}`)).data.results;
return (await apiClient.get(`datasets/?project=${projectId}`)).data.results;
}

export async function getChart(chartId: number): Promise<Chart> {
return (await apiClient.get(`charts/${chartId}`)).data;
return (await apiClient.get(`charts/${chartId}/`)).data;
}

export async function getChartFiles(chartId: number): Promise<FileItem[]> {
return (await apiClient.get(`charts/${chartId}/files`)).data;
return (await apiClient.get(`charts/${chartId}/files/`)).data;
}

export async function getProjectCharts(projectId: number): Promise<Chart[]> {
return (await apiClient.get(`charts?project=${projectId}`)).data.results;
return (await apiClient.get(`charts/?project=${projectId}`)).data.results;
}

export async function getProjectAnalysisTypes(
projectId: number
): Promise<AnalysisType[]> {
return (await apiClient.get(`analytics/project/${projectId}/types`))
return (await apiClient.get(`analytics/project/${projectId}/types/`))
.data;
}

export async function getDatasets(): Promise<Dataset[]> {
return (await apiClient.get(`datasets`)).data.results;
return (await apiClient.get('datasets/')).data.results;
}

export async function getDataset(datasetId: number): Promise<Dataset> {
return (await apiClient.get(`datasets/${datasetId}`)).data;
return (await apiClient.get(`datasets/${datasetId}/`)).data;
}

export async function createDataset(data: any): Promise<Dataset> {
Expand All @@ -103,23 +103,23 @@ export async function spawnDatasetConversion(datasetId: number, options: any): P
}

export async function getDatasetLayers(datasetId: number): Promise<Layer[]> {
return (await apiClient.get(`datasets/${datasetId}/layers`)).data;
return (await apiClient.get(`datasets/${datasetId}/layers/`)).data;
}

export async function getLayer(layerId: number): Promise<Layer> {
return (await apiClient.get(`layers/${layerId}`)).data;
return (await apiClient.get(`layers/${layerId}/`)).data;
}

export async function getLayerFrames(layerId: number): Promise<LayerFrame[]> {
return (await apiClient.get(`layers/${layerId}/frames`)).data;
return (await apiClient.get(`layers/${layerId}/frames/`)).data;
}

export async function getDatasetFiles(datasetId: number): Promise<FileItem[]> {
return (await apiClient.get(`datasets/${datasetId}/files`)).data;
return (await apiClient.get(`datasets/${datasetId}/files/`)).data;
}

export async function getFileDataObjects(fileId: number): Promise<(RasterData | VectorData)[]> {
return (await apiClient.get(`files/${fileId}/data`)).data;
return (await apiClient.get(`files/${fileId}/data/`)).data;
}

export async function uploadFile(file:File): Promise<string> {
Expand All @@ -134,44 +134,44 @@ export async function createFileItem(data: any): Promise<FileItem> {
}

export async function getDatasetNetworks(datasetId: number): Promise<Network[]> {
return (await apiClient.get(`datasets/${datasetId}/networks`)).data;
return (await apiClient.get(`datasets/${datasetId}/networks/`)).data;
}

export async function getProjectNetworks(projectId: number): Promise<Network[]> {
return (await apiClient.get(`networks/?project=${projectId}`)).data.results;
}

export async function getNetwork(networkId: number): Promise<Network> {
return (await apiClient.get(`networks/${networkId}`)).data;
return (await apiClient.get(`networks/${networkId}/`)).data;
}

export async function getNetworkNodes(networkId: number, limit: number, offset: number): Promise<NetworkNode[]> {
return (await apiClient.get(`networks/${networkId}/nodes?limit=${limit}&offset=${offset}`)).data;
return (await apiClient.get(`networks/${networkId}/nodes/?limit=${limit}&offset=${offset}`)).data;
}

export async function getNetworkEdges(networkId: number, limit: number, offset: number): Promise<NetworkEdge[]> {
return (await apiClient.get(`networks/${networkId}/edges?limit=${limit}&offset=${offset}`)).data;
return (await apiClient.get(`networks/${networkId}/edges/?limit=${limit}&offset=${offset}`)).data;
}

export async function getNetworkGCC(
networkId: number,
exclude_nodes: number[]
): Promise<number[]> {
return (
await apiClient.get(`networks/${networkId}/gcc?exclude_nodes=${exclude_nodes.toString()}`)
await apiClient.get(`networks/${networkId}/gcc/?exclude_nodes=${exclude_nodes.toString()}`)
).data;
}

export async function getVectorSummary(vectorId: number): Promise<VectorSummary> {
return (await apiClient.get(`vectors/${vectorId}/summary`)).data;
return (await apiClient.get(`vectors/${vectorId}/summary/`)).data;
}

export async function getRasterDataValues(rasterId: number): Promise<RasterDataValues> {
const resolution = 0.1;
const data = (
await apiClient.get(`rasters/${rasterId}/raster-data/${resolution}`)
await apiClient.get(`rasters/${rasterId}/raster-data/${resolution}/`)
).data;
const { bounds } = (await apiClient.get(`rasters/${rasterId}/info/metadata`))
const { bounds } = (await apiClient.get(`rasters/${rasterId}/info/metadata/`))
.data;
return {
data,
Expand Down Expand Up @@ -204,7 +204,7 @@ export async function getTaskResults(
}

export async function getVectorDataBounds(vectorId: number): Promise<number[]> {
return (await apiClient.get(`vectors/${vectorId}/bounds`)).data;
return (await apiClient.get(`vectors/${vectorId}/bounds/`)).data;
}

export async function getLayerStyles(layerId: number): Promise<LayerStyle[]> {
Expand All @@ -224,7 +224,7 @@ export async function deleteLayerStyle(styleId: number): Promise<LayerStyle> {
}

export async function getProjectColormaps(projectId: number): Promise<Colormap[]> {
return (await apiClient.get(`colormaps?project=${projectId}`)).data.results;
return (await apiClient.get(`colormaps/?project=${projectId}`)).data.results;
}

export async function createColormap(colormap: Colormap): Promise<Colormap> {
Expand Down